Hello,
On Sun, 2016-05-29 at 21:12 +0200, Uros Bizjak wrote:
> Hello!
>
> >
> > When trying to compile using -march=native on a VIA nano CPU, gcc
> > selects "-march=core2" "-mtune=i386" then is unable to compile, as
> > this
> > creates a conflicts between 32 bits and 64 bits compilation modes,
> > as
> > show by the following test:
> [...]
>
> >
> > --- gcc/config/i386/driver-i386.c.origÂÂ2015-02-02
> > 05:20:49.000000000
> > +0100
> > +++ gcc/config/i386/driver-i386.cÂÂÂÂÂÂÂ2015-08-23
> > 01:11:03.000000000
> > +0200
> > @@ -601,15 +601,20 @@
> > ÂÂÂÂÂÂÂÂÂÂswitch (family)
> > ÂÂÂÂÂÂÂÂÂÂÂÂ{
> > ÂÂÂÂÂÂÂÂÂÂÂÂcase 6:
> > -ÂÂÂÂÂÂÂÂÂÂÂÂÂif (model > 9)
> The patch was corrupted by your mailer. But - can you please open a
> bugreport, and refer reposted patch to this bugreport? This way, the
> problem (and the patch) won't get forgotten.
>
> Uros.
>
Sorry for that, might be because of UTF-8 encoding.
I already opened a bug many monthes ago, ID 67310:
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67310>
I just updated the patch against current git repository, the only
difference between previous versions are diff offsets.
Jocelyn
---
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-
i386.c
index b121466..662709e 100644
--- a/gcc/config/i386/driver-i386.c
+++ b/gcc/config/i386/driver-i386.c
@@ -642,15 +642,20 @@ const char *host_detect_local_cpu (int argc,
const char **argv)
switch (family)
{
case 6:
- if (model > 9)
- /* Use the default detection procedure. */
+ if (has_longmode)
processor = PROCESSOR_GENERIC;
- else if (model == 9)
- cpu = "c3-2";
- else if (model >= 6)
- cpu = "c3";
else
- processor = PROCESSOR_GENERIC;
+ {
+ if (model > 9)
+ /* Use the default detection procedure. */
+ processor = PROCESSOR_GENERIC;
+ else if (model == 9)
+ cpu = "c3-2";
+ else if (model >= 6)
+ cpu = "c3";
+ else
+ processor = PROCESSOR_GENERIC;
+ }
break;
case 5:
if (has_3dnow)
@@ -664,6 +669,8 @@ const char *host_detect_local_cpu (int argc, const
char **argv)
/* We have no idea. */
processor = PROCESSOR_GENERIC;
}
+ } else {
+ processor = PROCESSOR_GENERIC;
}
}
else
@@ -894,7 +901,12 @@ const char *host_detect_local_cpu (int argc, const
char **argv)
if (arch)
{
if (has_ssse3)
- cpu = "core2";
+ {
+ if (vendor == signature_CENTAUR_ebx)
+ cpu = "x86-64";
+ else
+ cpu = "core2";
+ }
else if (has_sse3)
{
if (has_longmode)