mirror of git://sourceware.org/git/glibc.git
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. |
||
---|---|---|
.. | ||
64 | ||
x32 | ||
Implies | ||
Makefile | ||
Versions | ||
____longjmp_chk.S | ||
__start_context.S | ||
brk.c | ||
clone.S | ||
compat-timer.h | ||
configure | ||
configure.ac | ||
dl-cache.h | ||
dl-procinfo.c | ||
dl-procinfo.h | ||
getcontext.S | ||
kernel-features.h | ||
kernel_stat.h | ||
ldconfig.h | ||
ldd-rewrite.sed | ||
libmvec.abilist | ||
makecontext.c | ||
readelflib.c | ||
register-dump.h | ||
setcontext.S | ||
sigaction.c | ||
sigaltstack-offsets.sym | ||
sigcontextinfo.h | ||
swapcontext.S | ||
syscall.S | ||
syscalls.list | ||
sysdep.S | ||
sysdep.h | ||
timer_create.c | ||
timer_delete.c | ||
timer_getoverr.c | ||
timer_gettime.c | ||
timer_settime.c | ||
ucontext_i.sym | ||
vfork.S |