[PATCH 1/2] x86: Skip XSAVE state size reset if ISA level requires XSAVE
Florian Weimer
fweimer@redhat.com
Thu Mar 27 21:41:05 GMT 2025
If we have to use XSAVE or XSAVEC trampolines, do not adjust the size
information they need. Technically, it is an operator error to try to
run with -XSAVE,-XSAVEC on such builds, but this change here disables
some unnecessary code with higher ISA levels and simplifies testing.
Related to commit befe2d3c4dec8be2cdd01a47132e47bdb7020922
("x86-64: Don't use SSE resolvers for ISA level 3 or above").
---
sysdeps/x86/cpu-features.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index 27abaca8b7..06876bff14 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -1161,7 +1161,8 @@ no_cpuid:
bool disable_xsave_features = false;
- if (!CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE))
+ if (MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+ && !CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE))
{
/* These features are usable only if OSXSAVE is usable. */
CPU_FEATURE_UNSET (cpu_features, XSAVE);
@@ -1173,9 +1174,10 @@ no_cpuid:
disable_xsave_features = true;
}
- if (disable_xsave_features
- || (!CPU_FEATURE_USABLE_P (cpu_features, XSAVE)
- && !CPU_FEATURE_USABLE_P (cpu_features, XSAVEC)))
+ if (MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+ && (disable_xsave_features
+ || (!CPU_FEATURE_USABLE_P (cpu_features, XSAVE)
+ && !CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))))
{
/* Clear xsave_state_size if both XSAVE and XSAVEC aren't usable. */
cpu_features->xsave_state_size = 0;
base-commit: be61b9493d38032519e596f282f9695667402c8d
--
2.48.1
More information about the Libc-alpha
mailing list