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 befe2d3c4d
("x86-64: Don't use SSE resolvers for ISA level 3 or above").

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 59585ddaa2)
This commit is contained in:
Florian Weimer 2025-03-28 09:26:06 +01:00 committed by H.J. Lu
parent 554716698b
commit 815233f54b
1 changed files with 5 additions and 0 deletions

View File

@ -24,6 +24,7 @@
#include <dl-cacheinfo.h> #include <dl-cacheinfo.h>
#include <dl-minsigstacksize.h> #include <dl-minsigstacksize.h>
#include <dl-hwcap2.h> #include <dl-hwcap2.h>
#include <gcc-macros.h>
extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *)
attribute_hidden; attribute_hidden;
@ -1010,6 +1011,9 @@ no_cpuid:
TUNABLE_CALLBACK (set_prefer_map_32bit_exec)); TUNABLE_CALLBACK (set_prefer_map_32bit_exec));
#endif #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; bool disable_xsave_features = false;
if (!CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE)) if (!CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE))
@ -1063,6 +1067,7 @@ no_cpuid:
CPU_FEATURE_UNSET (cpu_features, FMA4); CPU_FEATURE_UNSET (cpu_features, FMA4);
} }
#endif
#ifdef __x86_64__ #ifdef __x86_64__
GLRO(dl_hwcap) = HWCAP_X86_64; GLRO(dl_hwcap) = HWCAP_X86_64;