81 lines
3.3 KiB
Diff
81 lines
3.3 KiB
Diff
commit f56c497d2b640577f0a8a41f04d4f2c25a8800bd
|
|
Author: H.J. Lu <hjl.tools@gmail.com>
|
|
Date: Mon Jun 27 12:52:58 2022 -0700
|
|
|
|
x86: Move CPU_FEATURE{S}_{USABLE|ARCH}_P to isa-level.h
|
|
|
|
Move X86_ISA_CPU_FEATURE_USABLE_P and X86_ISA_CPU_FEATURES_ARCH_P to
|
|
where MINIMUM_X86_ISA_LEVEL and XXX_X86_ISA_LEVEL are defined.
|
|
|
|
diff --git a/sysdeps/x86/isa-ifunc-macros.h b/sysdeps/x86/isa-ifunc-macros.h
|
|
index d69905689b0963ec..f967a1bec6fd57d2 100644
|
|
--- a/sysdeps/x86/isa-ifunc-macros.h
|
|
+++ b/sysdeps/x86/isa-ifunc-macros.h
|
|
@@ -56,31 +56,4 @@
|
|
# define X86_IFUNC_IMPL_ADD_V1(...)
|
|
#endif
|
|
|
|
-/* Both X86_ISA_CPU_FEATURE_USABLE_P and X86_ISA_CPU_FEATURES_ARCH_P
|
|
- macros are wrappers for the the respective
|
|
- CPU_FEATURE{S}_{USABLE|ARCH}_P runtime checks. They differ in two
|
|
- ways.
|
|
-
|
|
- 1. The USABLE_P version is evaluated to true when the feature
|
|
- is enabled.
|
|
-
|
|
- 2. The ARCH_P version has a third argument `not`. The `not`
|
|
- argument can either be '!' or empty. If the feature is
|
|
- enabled above an ISA level, the third argument should be empty
|
|
- and the expression is evaluated to true when the feature is
|
|
- enabled. If the feature is disabled above an ISA level, the
|
|
- third argument should be `!` and the expression is evaluated
|
|
- to true when the feature is disabled.
|
|
- */
|
|
-
|
|
-#define X86_ISA_CPU_FEATURE_USABLE_P(ptr, name) \
|
|
- (((name##_X86_ISA_LEVEL) <= MINIMUM_X86_ISA_LEVEL) \
|
|
- || CPU_FEATURE_USABLE_P (ptr, name))
|
|
-
|
|
-
|
|
-#define X86_ISA_CPU_FEATURES_ARCH_P(ptr, name, not) \
|
|
- (((name##_X86_ISA_LEVEL) <= MINIMUM_X86_ISA_LEVEL) \
|
|
- || not CPU_FEATURES_ARCH_P (ptr, name))
|
|
-
|
|
-
|
|
#endif
|
|
diff --git a/sysdeps/x86/isa-level.h b/sysdeps/x86/isa-level.h
|
|
index 075e7c6ee17777db..c6156e7f7ac7ece5 100644
|
|
--- a/sysdeps/x86/isa-level.h
|
|
+++ b/sysdeps/x86/isa-level.h
|
|
@@ -87,6 +87,30 @@
|
|
when ISA level < 3. */
|
|
#define Prefer_No_VZEROUPPER_X86_ISA_LEVEL 3
|
|
|
|
+/* Both X86_ISA_CPU_FEATURE_USABLE_P and X86_ISA_CPU_FEATURES_ARCH_P
|
|
+ macros are wrappers for the respective CPU_FEATURE{S}_{USABLE|ARCH}_P
|
|
+ runtime checks. They differ in two ways.
|
|
+
|
|
+ 1. The USABLE_P version is evaluated to true when the feature
|
|
+ is enabled.
|
|
+
|
|
+ 2. The ARCH_P version has a third argument `not`. The `not`
|
|
+ argument can either be `!` or empty. If the feature is
|
|
+ enabled above an ISA level, the third argument should be empty
|
|
+ and the expression is evaluated to true when the feature is
|
|
+ enabled. If the feature is disabled above an ISA level, the
|
|
+ third argument should be `!` and the expression is evaluated
|
|
+ to true when the feature is disabled.
|
|
+ */
|
|
+
|
|
+#define X86_ISA_CPU_FEATURE_USABLE_P(ptr, name) \
|
|
+ (((name##_X86_ISA_LEVEL) <= MINIMUM_X86_ISA_LEVEL) \
|
|
+ || CPU_FEATURE_USABLE_P (ptr, name))
|
|
+
|
|
+#define X86_ISA_CPU_FEATURES_ARCH_P(ptr, name, not) \
|
|
+ (((name##_X86_ISA_LEVEL) <= MINIMUM_X86_ISA_LEVEL) \
|
|
+ || not CPU_FEATURES_ARCH_P (ptr, name))
|
|
+
|
|
#define ISA_SHOULD_BUILD(isa_build_level) \
|
|
(MINIMUM_X86_ISA_LEVEL <= (isa_build_level) && IS_IN (libc)) \
|
|
|| defined ISA_DEFAULT_IMPL
|