aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86/cpu-features.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-08-18 07:59:49 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-08-18 08:00:00 -0700
commit1814df5b02b9c359052c2048a1d2d617b406a17a (patch)
tree30f5786d3e53d6043ecaab75bdb71cddf6567368 /sysdeps/x86/cpu-features.c
parent441c3b59d1e2fca4ad40cf53d03d6196c978e85f (diff)
downloadglibc-1814df5b02b9c359052c2048a1d2d617b406a17a.tar
glibc-1814df5b02b9c359052c2048a1d2d617b406a17a.tar.gz
glibc-1814df5b02b9c359052c2048a1d2d617b406a17a.tar.bz2
glibc-1814df5b02b9c359052c2048a1d2d617b406a17a.zip
Define HAS_CPUID/HAS_I586/HAS_I686 from -march=
cpuid, i586 and i686 instructions are available if the processor specified by -march= supports them. We can use this information to determine whether those instructions can be used safely. * sysdeps/x86/cpu-features.c (init_cpu_features): Check whether cpuid is available only if HAS_CPUID is 0. * sysdeps/x86/cpu-features.h (HAS_CPUID): New. (HAS_I586): Likewise. (HAS_I686): Likewise.
Diffstat (limited to 'sysdeps/x86/cpu-features.c')
-rw-r--r--sysdeps/x86/cpu-features.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index 582a8f5f79..40575de611 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -40,7 +40,7 @@ init_cpu_features (struct cpu_features *cpu_features)
unsigned int model = 0;
enum cpu_features_kind kind;
-#if !defined __i586__ && !defined __i686__ && !defined __x86_64__
+#if !HAS_CPUID
if (__get_cpuid_max (0, 0) == 0)
{
kind = arch_kind_other;
@@ -204,7 +204,7 @@ init_cpu_features (struct cpu_features *cpu_features)
}
}
-#if !defined __i586__ && !defined __i686__ && !defined __x86_64__
+#if !HAS_CPUID
no_cpuid:
#endif