diff options
Diffstat (limited to 'gcc/config/i386/driver-i386.c')
-rw-r--r-- | gcc/config/i386/driver-i386.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index 9f44ee86391..22a8f2861ae 100644 --- a/gcc/config/i386/driver-i386.c +++ b/gcc/config/i386/driver-i386.c @@ -653,10 +653,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) case 6: if (has_longmode) processor = PROCESSOR_K8; - else if (model > 9) - /* Use the default detection procedure. */ - ; - else if (model == 9) + else if (model >= 9) processor = PROCESSOR_PENTIUMPRO; else if (model >= 6) processor = PROCESSOR_I486; @@ -818,15 +815,27 @@ const char *host_detect_local_cpu (int argc, const char **argv) as all the CPUs below are 32-bit only. */ cpu = "x86-64"; else if (has_sse3) - /* It is Core Duo. */ - cpu = "pentium-m"; + { + if (vendor == signature_CENTAUR_ebx) + /* C7 / Eden "Esther" */ + cpu = "c7"; + else + /* It is Core Duo. */ + cpu = "pentium-m"; + } else if (has_sse2) /* It is Pentium M. */ cpu = "pentium-m"; else if (has_sse) { if (vendor == signature_CENTAUR_ebx) - cpu = "c3-2"; + { + if (model >= 9) + /* Eden "Nehemiah" */ + cpu = "nehemiah"; + else + cpu = "c3-2"; + } else /* It is Pentium III. */ cpu = "pentium3"; |