about summary refs log tree commit diff
path: root/sysdeps/x86
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86')
-rw-r--r--sysdeps/x86/include/cpu-features.h156
1 files changed, 75 insertions, 81 deletions
diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h
index 0df57d9a17..a53194a6ca 100644
--- a/sysdeps/x86/include/cpu-features.h
+++ b/sysdeps/x86/include/cpu-features.h
@@ -23,20 +23,16 @@
 # error this should be impossible
 #endif
 
-#ifndef _ISOMAC
 /* Get most of the contents from the public header, but we define a
    different `struct cpu_features' type for private use.  */
-# define cpu_features		cpu_features_public
-# define __x86_get_cpu_features	__x86_get_cpu_features_public
-#endif
+#define cpu_features		cpu_features_public
+#define __x86_get_cpu_features	__x86_get_cpu_features_public
 
 #include <sysdeps/x86/sys/platform/x86.h>
 
-#ifndef _ISOMAC
-
-# undef	cpu_features
-# undef __x86_get_cpu_features
-# define __get_cpu_features()	__x86_get_cpu_features (0)
+#undef	cpu_features
+#undef __x86_get_cpu_features
+#define __get_cpu_features()	__x86_get_cpu_features (0)
 
 enum
 {
@@ -48,79 +44,79 @@ enum
 };
 
 /* Only used directly in cpu-features.c.  */
-# define CPU_FEATURE_SET(ptr, name) \
+#define CPU_FEATURE_SET(ptr, name) \
   ptr->features[index_cpu_##name].usable.reg_##name |= bit_cpu_##name;
-# define CPU_FEATURE_UNSET(ptr, name) \
+#define CPU_FEATURE_UNSET(ptr, name) \
   ptr->features[index_cpu_##name].usable.reg_##name &= ~bit_cpu_##name;
-# define CPU_FEATURE_SET_USABLE(ptr, name) \
+#define CPU_FEATURE_SET_USABLE(ptr, name) \
   ptr->features[index_cpu_##name].usable.reg_##name \
      |= ptr->features[index_cpu_##name].cpuid.reg_##name & bit_cpu_##name;
-# define CPU_FEATURE_PREFERRED_P(ptr, name) \
+#define CPU_FEATURE_PREFERRED_P(ptr, name) \
   ((ptr->preferred[index_arch_##name] & bit_arch_##name) != 0)
 
 /* HAS_CPU_FEATURE evaluates to true if CPU supports the feature.  */
-# undef HAS_CPU_FEATURE
-# define HAS_CPU_FEATURE(name) \
+#undef HAS_CPU_FEATURE
+#define HAS_CPU_FEATURE(name) \
   CPU_FEATURE_CPU_P (__x86_get_cpu_features (0), name)
 /* CPU_FEATURE_USABLE evaluates to true if the feature is usable.  */
-# undef CPU_FEATURE_USABLE
-# define CPU_FEATURE_USABLE(name) \
+#undef CPU_FEATURE_USABLE
+#define CPU_FEATURE_USABLE(name) \
   CPU_FEATURE_USABLE_P (__x86_get_cpu_features (0), name)
 /* CPU_FEATURE_PREFER evaluates to true if we prefer the feature at
    runtime.  */
-# define CPU_FEATURE_PREFERRED(name) \
+#define CPU_FEATURE_PREFERRED(name) \
   CPU_FEATURE_PREFERRED_P(__get_cpu_features (), name)
 
-# define CPU_FEATURES_CPU_P(ptr, name) \
+#define CPU_FEATURES_CPU_P(ptr, name) \
   CPU_FEATURE_CPU_P (ptr, name)
-# define CPU_FEATURES_ARCH_P(ptr, name) \
+#define CPU_FEATURES_ARCH_P(ptr, name) \
   CPU_FEATURE_PREFERRED_P (ptr, name)
-# define HAS_ARCH_FEATURE(name) \
+#define HAS_ARCH_FEATURE(name) \
   CPU_FEATURE_PREFERRED (name)
 
 /* PREFERRED_FEATURE_INDEX_1.  */
-# define bit_arch_I586				(1u << 0)
-# define bit_arch_I686				(1u << 1)
-# define bit_arch_Fast_Rep_String		(1u << 2)
-# define bit_arch_Fast_Copy_Backward		(1u << 3)
-# define bit_arch_Fast_Unaligned_Load		(1u << 4)
-# define bit_arch_Fast_Unaligned_Copy		(1u << 5)
-# define bit_arch_Slow_BSF			(1u << 6)
-# define bit_arch_Slow_SSE4_2			(1u << 7)
-# define bit_arch_AVX_Fast_Unaligned_Load	(1u << 8)
-# define bit_arch_Prefer_MAP_32BIT_EXEC		(1u << 9)
-# define bit_arch_Prefer_PMINUB_for_stringop	(1u << 10)
-# define bit_arch_Prefer_No_VZEROUPPER		(1u << 11)
-# define bit_arch_Prefer_ERMS			(1u << 12)
-# define bit_arch_Prefer_FSRM			(1u << 13)
-# define bit_arch_Prefer_No_AVX512		(1u << 14)
-# define bit_arch_MathVec_Prefer_No_AVX512	(1u << 15)
-
-# define index_arch_Fast_Rep_String		PREFERRED_FEATURE_INDEX_1
-# define index_arch_Fast_Copy_Backward		PREFERRED_FEATURE_INDEX_1
-# define index_arch_Slow_BSF			PREFERRED_FEATURE_INDEX_1
-# define index_arch_Fast_Unaligned_Load		PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_PMINUB_for_stringop 	PREFERRED_FEATURE_INDEX_1
-# define index_arch_Fast_Unaligned_Copy		PREFERRED_FEATURE_INDEX_1
-# define index_arch_I586			PREFERRED_FEATURE_INDEX_1
-# define index_arch_I686			PREFERRED_FEATURE_INDEX_1
-# define index_arch_Slow_SSE4_2			PREFERRED_FEATURE_INDEX_1
-# define index_arch_AVX_Fast_Unaligned_Load	PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_MAP_32BIT_EXEC	PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_No_VZEROUPPER	PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_ERMS			PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_No_AVX512		PREFERRED_FEATURE_INDEX_1
-# define index_arch_MathVec_Prefer_No_AVX512	PREFERRED_FEATURE_INDEX_1
-# define index_arch_Prefer_FSRM			PREFERRED_FEATURE_INDEX_1
+#define bit_arch_I586				(1u << 0)
+#define bit_arch_I686				(1u << 1)
+#define bit_arch_Fast_Rep_String		(1u << 2)
+#define bit_arch_Fast_Copy_Backward		(1u << 3)
+#define bit_arch_Fast_Unaligned_Load		(1u << 4)
+#define bit_arch_Fast_Unaligned_Copy		(1u << 5)
+#define bit_arch_Slow_BSF			(1u << 6)
+#define bit_arch_Slow_SSE4_2			(1u << 7)
+#define bit_arch_AVX_Fast_Unaligned_Load	(1u << 8)
+#define bit_arch_Prefer_MAP_32BIT_EXEC		(1u << 9)
+#define bit_arch_Prefer_PMINUB_for_stringop	(1u << 10)
+#define bit_arch_Prefer_No_VZEROUPPER		(1u << 11)
+#define bit_arch_Prefer_ERMS			(1u << 12)
+#define bit_arch_Prefer_FSRM			(1u << 13)
+#define bit_arch_Prefer_No_AVX512		(1u << 14)
+#define bit_arch_MathVec_Prefer_No_AVX512	(1u << 15)
+
+#define index_arch_Fast_Rep_String		PREFERRED_FEATURE_INDEX_1
+#define index_arch_Fast_Copy_Backward		PREFERRED_FEATURE_INDEX_1
+#define index_arch_Slow_BSF			PREFERRED_FEATURE_INDEX_1
+#define index_arch_Fast_Unaligned_Load		PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_PMINUB_for_stringop 	PREFERRED_FEATURE_INDEX_1
+#define index_arch_Fast_Unaligned_Copy		PREFERRED_FEATURE_INDEX_1
+#define index_arch_I586				PREFERRED_FEATURE_INDEX_1
+#define index_arch_I686				PREFERRED_FEATURE_INDEX_1
+#define index_arch_Slow_SSE4_2			PREFERRED_FEATURE_INDEX_1
+#define index_arch_AVX_Fast_Unaligned_Load	PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_MAP_32BIT_EXEC	PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_No_VZEROUPPER		PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_ERMS			PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_No_AVX512		PREFERRED_FEATURE_INDEX_1
+#define index_arch_MathVec_Prefer_No_AVX512	PREFERRED_FEATURE_INDEX_1
+#define index_arch_Prefer_FSRM			PREFERRED_FEATURE_INDEX_1
 
 /* XCR0 Feature flags.  */
-# define bit_XMM_state		(1u << 1)
-# define bit_YMM_state		(1u << 2)
-# define bit_Opmask_state	(1u << 5)
-# define bit_ZMM0_15_state	(1u << 6)
-# define bit_ZMM16_31_state	(1u << 7)
-# define bit_XTILECFG_state	(1u << 17)
-# define bit_XTILEDATA_state	(1u << 18)
+#define bit_XMM_state		(1u << 1)
+#define bit_YMM_state		(1u << 2)
+#define bit_Opmask_state	(1u << 5)
+#define bit_ZMM0_15_state	(1u << 6)
+#define bit_ZMM16_31_state	(1u << 7)
+#define bit_XTILECFG_state	(1u << 17)
+#define bit_XTILEDATA_state	(1u << 18)
 
 struct cpu_features
 {
@@ -153,30 +149,28 @@ struct cpu_features
   unsigned long int rep_stosb_threshold;
 };
 
-# if defined (_LIBC) && !IS_IN (nonlib)
+#if defined (_LIBC) && !IS_IN (nonlib)
 /* Unused for x86.  */
-#  define INIT_ARCH()
-#  define __x86_get_cpu_features(max) (&GLRO(dl_x86_cpu_features))
+# define INIT_ARCH()
+# define __x86_get_cpu_features(max) (&GLRO(dl_x86_cpu_features))
 extern void _dl_x86_init_cpu_features (void) attribute_hidden;
-# endif
+#endif
 
-# ifdef __x86_64__
-#  define HAS_CPUID 1
-# elif (defined __i586__ || defined __pentium__	\
+#ifdef __x86_64__
+# define HAS_CPUID 1
+#elif (defined __i586__ || defined __pentium__	\
 	|| defined __geode__ || defined __k6__)
-#  define HAS_CPUID 1
-#  define HAS_I586 1
-#  define HAS_I686 HAS_ARCH_FEATURE (I686)
-# elif defined __i486__
-#  define HAS_CPUID 0
-#  define HAS_I586 HAS_ARCH_FEATURE (I586)
-#  define HAS_I686 HAS_ARCH_FEATURE (I686)
-# else
-#  define HAS_CPUID 1
-#  define HAS_I586 1
-#  define HAS_I686 1
+# define HAS_CPUID 1
+# define HAS_I586 1
+# define HAS_I686 HAS_ARCH_FEATURE (I686)
+#elif defined __i486__
+# define HAS_CPUID 0
+# define HAS_I586 HAS_ARCH_FEATURE (I586)
+# define HAS_I686 HAS_ARCH_FEATURE (I686)
+#else
+# define HAS_CPUID 1
+# define HAS_I586 1
+# define HAS_I686 1
 # endif
 
-#endif /* !_ISOMAC */
-
 #endif /* include/cpu-features.h */