[v2,1/2] x86: Move CPU_FEATURE{S}_{USABLE|ARCH}_P to isa-level.h
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
Commit Message
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(-)
Comments
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.
@@ -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