Message ID | 20220627211858.2807553-1-hjl.tools@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] x86: Move CPU_FEATURE{S}_{USABLE|ARCH}_P to isa-level.h | expand |
On Mon, Jun 27, 2022 at 2:19 PM H.J. Lu <hjl.tools@gmail.com> wrote: > > 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. > --- > sysdeps/x86/isa-ifunc-macros.h | 27 --------------------------- > sysdeps/x86/isa-level.h | 24 ++++++++++++++++++++++++ > 2 files changed, 24 insertions(+), 27 deletions(-) > > diff --git a/sysdeps/x86/isa-ifunc-macros.h b/sysdeps/x86/isa-ifunc-macros.h > index d69905689b..f967a1bec6 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 075e7c6ee1..c6156e7f7a 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 > -- > 2.36.1 > LGTM.
diff --git a/sysdeps/x86/isa-ifunc-macros.h b/sysdeps/x86/isa-ifunc-macros.h index d69905689b..f967a1bec6 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 075e7c6ee1..c6156e7f7a 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