mirror of git://sourceware.org/git/glibc.git
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.
This commit is contained in:
parent
4fc321dc58
commit
f56c497d2b
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue