glibc/sysdeps/x86
H.J. Lu ecbbadbf10 x86: Update CPU feature detection [BZ #26149]
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.
2020-06-22 13:09:33 -07:00
..
bits semaphore: consolidate arch headers into a generic one 2020-05-06 13:07:12 -07:00
fpu i386: Use builtin sqrtl 2020-06-22 11:09:49 -03:00
nptl
__longjmp_cancel.S
atomic-machine.h
cacheinfo.c i386: Remove unused variable in sysdeps/x86/cacheinfo.c 2020-04-30 21:16:47 +02:00
cet-control.h x86: Move CET control to _dl_x86_feature_control [BZ #25887] 2020-05-18 06:15:02 -07:00
check-cet.awk
configure x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
configure.ac x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
cpu-features-offsets.sym
cpu-features.c x86: Update CPU feature detection [BZ #26149] 2020-06-22 13:09:33 -07:00
cpu-features.h x86: Update CPU feature detection [BZ #26149] 2020-06-22 13:09:33 -07:00
cpu-tunables.c x86: Update CPU feature detection [BZ #26149] 2020-06-22 13:09:33 -07:00
dl-cet.c x86: Move CET control to _dl_x86_feature_control [BZ #25887] 2020-05-18 06:15:02 -07:00
dl-get-cpu-features.c
dl-hwcap.h
dl-lookupcfg.h
dl-procinfo.c
dl-procinfo.h
dl-procruntime.c x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
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 x86: Move CET control to _dl_x86_feature_control [BZ #25887] 2020-05-18 06:15:02 -07:00
libc-start.c
libc-start.h
link_map.h
linkmap.h
longjmp.c
Makeconfig
Makefile x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
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 x86: Remove ARCH_CET_LEGACY_BITMAP [BZ #25397] 2020-03-18 04:35:54 -07:00
tst-cet-legacy-4a.c
tst-cet-legacy-4b.c
tst-cet-legacy-4c.c
tst-cet-legacy-5.c x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
tst-cet-legacy-5a.c
tst-cet-legacy-5b.c
tst-cet-legacy-6.c x86: Add --enable-cet=permissive 2020-05-18 08:38:53 -07:00
tst-cet-legacy-6a.c
tst-cet-legacy-6b.c
tst-cet-legacy-7.c x86: Remove ARCH_CET_LEGACY_BITMAP [BZ #25397] 2020-03-18 04:35:54 -07:00
tst-cet-legacy-8.c x86: Remove ARCH_CET_LEGACY_BITMAP [BZ #25397] 2020-03-18 04:35:54 -07:00
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 x86: Update CPU feature detection [BZ #26149] 2020-06-22 13:09:33 -07:00
Versions