mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
ecbbadbf10
1. Divide architecture features into the usable features and the preferred features. The usable features are for correctness and can be exported in a stable ABI. The preferred features are for performance and only for glibc internal use. 2. Change struct cpu_features to struct cpu_features { struct cpu_features_basic basic; unsigned int *usable_p; struct cpuid_registers cpuid[COMMON_CPUID_INDEX_MAX]; unsigned int usable[USABLE_FEATURE_INDEX_MAX]; unsigned int preferred[PREFERRED_FEATURE_INDEX_MAX]; ... }; and initialize usable_p to pointer to the usable arary so that struct cpu_features { struct cpu_features_basic basic; unsigned int *usable_p; struct cpuid_registers cpuid[COMMON_CPUID_INDEX_MAX]; }; can be exported via a stable ABI. The cpuid and usable arrays can be expanded with backward binary compatibility for both .o and .so files. 3. Add COMMON_CPUID_INDEX_7_ECX_1 for AVX512_BF16. 4. Detect ENQCMD, PKS, AVX512_VP2INTERSECT, MD_CLEAR, SERIALIZE, HYBRID, TSXLDTRK, L1D_FLUSH, CORE_CAPABILITIES and AVX512_BF16. 5. Rename CAPABILITIES to ARCH_CAPABILITIES. 6. Check if AVX512_VP2INTERSECT, AVX512_BF16 and PKU are usable. 7. Update CPU feature detection test. |
||
---|---|---|
.. | ||
bits | ||
fpu | ||
nptl | ||
__longjmp_cancel.S | ||
atomic-machine.h | ||
cacheinfo.c | ||
cet-control.h | ||
check-cet.awk | ||
configure | ||
configure.ac | ||
cpu-features-offsets.sym | ||
cpu-features.c | ||
cpu-features.h | ||
cpu-tunables.c | ||
dl-cet.c | ||
dl-get-cpu-features.c | ||
dl-hwcap.h | ||
dl-lookupcfg.h | ||
dl-procinfo.c | ||
dl-procinfo.h | ||
dl-procruntime.c | ||
dl-prop.h | ||
dl-tunables.list | ||
elf-initfini.h | ||
elide.h | ||
float128-abi.h | ||
fpu_control.h | ||
hp-timing.h | ||
init-arch.h | ||
jmp_buf-ssp.sym | ||
ldsodefs.h | ||
libc-start.c | ||
libc-start.h | ||
link_map.h | ||
linkmap.h | ||
longjmp.c | ||
Makeconfig | ||
Makefile | ||
string_private.h | ||
sysdep.h | ||
tininess.h | ||
tst-cet-legacy-1.c | ||
tst-cet-legacy-1a.c | ||
tst-cet-legacy-2.c | ||
tst-cet-legacy-2a.c | ||
tst-cet-legacy-3.c | ||
tst-cet-legacy-4.c | ||
tst-cet-legacy-4a.c | ||
tst-cet-legacy-4b.c | ||
tst-cet-legacy-4c.c | ||
tst-cet-legacy-5.c | ||
tst-cet-legacy-5a.c | ||
tst-cet-legacy-5b.c | ||
tst-cet-legacy-6.c | ||
tst-cet-legacy-6a.c | ||
tst-cet-legacy-6b.c | ||
tst-cet-legacy-7.c | ||
tst-cet-legacy-8.c | ||
tst-cet-legacy-mod-1.c | ||
tst-cet-legacy-mod-2.c | ||
tst-cet-legacy-mod-4.c | ||
tst-cet-legacy-mod-5.c | ||
tst-cet-legacy-mod-5a.c | ||
tst-cet-legacy-mod-5b.c | ||
tst-cet-legacy-mod-5c.c | ||
tst-cet-legacy-mod-6.c | ||
tst-cet-legacy-mod-6a.c | ||
tst-cet-legacy-mod-6b.c | ||
tst-cet-legacy-mod-6c.c | ||
tst-cet-legacy-mod-6d.c | ||
tst-get-cpu-features-static.c | ||
tst-get-cpu-features.c | ||
Versions |