diff options
author | Florian Weimer <fweimer@redhat.com> | 2025-03-28 09:26:06 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2025-03-29 09:17:38 +0100 |
commit | 59585ddaa2d44f22af04bb4b8bd4ad1e302c4c02 (patch) | |
tree | 2bc3bf971147f28621172c099695fb4ca45926b7 | |
parent | b0897944cc3081e019b39981790051f7ee127406 (diff) | |
download | glibc-59585ddaa2d44f22af04bb4b8bd4ad1e302c4c02.zip glibc-59585ddaa2d44f22af04bb4b8bd4ad1e302c4c02.tar.gz glibc-59585ddaa2d44f22af04bb4b8bd4ad1e302c4c02.tar.bz2 |
x86: Skip XSAVE state size reset if ISA level requires XSAVE
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").
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
-rw-r--r-- | sysdeps/x86/cpu-features.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c index 27abaca..6dfb112 100644 --- a/sysdeps/x86/cpu-features.c +++ b/sysdeps/x86/cpu-features.c @@ -24,6 +24,7 @@ #include <dl-cacheinfo.h> #include <dl-minsigstacksize.h> #include <dl-hwcap2.h> +#include <gcc-macros.h> extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) attribute_hidden; @@ -1159,6 +1160,9 @@ no_cpuid: TUNABLE_CALLBACK (set_prefer_map_32bit_exec)); #endif + /* Do not add the logic to disable XSAVE/XSAVEC if this glibc build + requires AVX and therefore XSAVE or XSAVEC support. */ +#ifndef GCCMACRO__AVX__ bool disable_xsave_features = false; if (!CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE)) @@ -1212,6 +1216,7 @@ no_cpuid: CPU_FEATURE_UNSET (cpu_features, FMA4); } +#endif #ifdef __x86_64__ GLRO(dl_hwcap) = HWCAP_X86_64; |