The following patch adds native detection for C7, Eden "Esther" and Eden "Nehemiah" VIA CPUs.
Please CC me to any comment / review / change request. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 14b8030..55afd8b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-06-21 Jocelyn Mayer <l_ind...@magic.fr> + + * config/i386/driver-i386.c (host_detect_local_cpu): Set + PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9. + <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for + signature_CENTAUR_ebx. + 2016-06-21 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/71588 diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver- i386.c index 9f44ee8..22a8f28 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";