Since not all i486 processors support cpuid, we call __get_cpuid_max to
check if cpuid is available before using it if not compiling for i586,
i686 nor x86-64.
* sysdeps/x86/cpu-features.c (init_cpu_features): Call
__get_cpuid_max if not compiling for i586, i686 nor x86-64.
+2015-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Call
+ __get_cpuid_max if not compiling for i586, i686 nor x86-64.
+
2015-08-13 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/x86/elision-conf.h: Don't include
unsigned int model = 0;
enum cpu_features_kind kind;
+#if !defined __i586__ && !defined __i686__ && !defined __x86_64__
+ if (__get_cpuid_max (0, 0) == 0)
+ {
+ kind = arch_kind_other;
+ goto no_cpuid;
+ }
+#endif
+
__cpuid (0, cpu_features->max_cpuid, ebx, ecx, edx);
/* This spells out "GenuineIntel". */
}
}
+#if !defined __i586__ && !defined __i686__ && !defined __x86_64__
+no_cpuid:
+#endif
+
cpu_features->family = family;
cpu_features->model = model;
cpu_features->kind = kind;