glibc/sysdeps/x86
Noah Goldstein ae308947ff x86: Add support for building {w}memcmp{eq} with explicit ISA level
1. Refactor files so that all implementations are in the multiarch
   directory
    - Moved the implementation portion of memcmp sse2 from memcmp.S to
      multiarch/memcmp-sse2.S

    - The non-multiarch file now only includes one of the
      implementations in the multiarch directory based on the compiled
      ISA level (only used for non-multiarch builds.  Otherwise we go
      through the ifunc selector).

2. Add ISA level build guards to different implementations.
    - I.e memcmp-avx2-movsb.S which is ISA level 3 will only build if
      compiled ISA level <= 3. Otherwise there is no reason to include
      it as we will always use one of the ISA level 4
      implementations (memcmp-evex-movbe.S).

3. Add new multiarch/rtld-{w}memcmp{eq}.S that just include the
   non-multiarch {w}memcmp{eq}.S which will in turn select the best
   implementation based on the compiled ISA level.

4. Refactor the ifunc selector and ifunc implementation list to use
   the ISA level aware wrapper macros that allow functions below the
   compiled ISA level (with a guranteed replacement) to be skipped.

Tested with and without multiarch on x86_64 for ISA levels:
{generic, x86-64-v2, x86-64-v3, x86-64-v4}

And m32 with and without multiarch.
2022-07-05 16:42:42 -07:00
..
bits Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fpu Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
include Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nptl Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sys/platform Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
__longjmp_cancel.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
abi-note.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
cacheinfo.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
cacheinfo.h x86: use default cache size if it cannot be determined [BZ #28784] 2022-01-17 19:42:46 +01:00
cet-control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-cet.awk Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
configure elf: Replace PI_STATIC_AND_HIDDEN with opposite HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 2022-04-26 09:26:22 -07:00
configure.ac elf: Replace PI_STATIC_AND_HIDDEN with opposite HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 2022-04-26 09:26:22 -07:00
cpu-features-offsets.sym x86: Cleanup cpu-features-offsets.sym 2018-08-03 06:42:09 -07:00
cpu-features.c x86: Black list more Intel CPUs for TSX [BZ #27398] 2022-01-18 14:20:09 -08:00
cpu-tunables.c x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
dl-cacheinfo.h x86: Add bounds x86_non_temporal_threshold 2022-06-15 14:25:55 -07:00
dl-cet.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-diagnostics-cpu.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-get-cpu-features.c x86: Add x86-64-vN check to early startup 2022-01-14 20:17:49 +01:00
dl-hwcap.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-isa-level.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-lookupcfg.h elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 2022-06-15 11:29:55 -07:00
dl-minsigstacksize.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-new-hash.h elf: Optimize _dl_new_hash in dl-new-hash.h 2022-05-23 10:38:40 -05:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procruntime.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-prop.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-tunables.list Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
float128-abi.h Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
fpu_control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-cpuid-feature-leaf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-isa-level.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
init-arch.h x86: Add defines / utilities for making ISA specific x86 builds 2022-06-22 19:41:35 -07:00
isa-ifunc-macros.h x86: Move CPU_FEATURE{S}_{USABLE|ARCH}_P to isa-level.h 2022-06-27 12:52:58 -07:00
isa-level.c x86: Add defines / utilities for making ISA specific x86 builds 2022-06-22 19:41:35 -07:00
isa-level.h x86: Add more feature definitions to isa-level.h 2022-06-28 08:24:56 -07:00
jmp_buf-ssp.sym x86: Support shadow stack pointer in setjmp/longjmp 2018-07-14 05:59:53 -07:00
ldbl2mpn.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-start.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
link_map.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
longjmp.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makeconfig Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
Makefile x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] 2022-02-18 16:35:18 -06:00
string_private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sysdep.h x86: Improve L to support L(XXX_SYMBOL (YYY, ZZZ)) 2022-02-05 16:42:17 -08:00
tininess.h Use sysdeps/x86/tininess.h for i386 and x86_64 2012-10-30 20:38:31 -07:00
tst-cet-legacy-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-1a.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-2a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-3.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-4.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-4a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4b.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4c.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-5.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-7.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-8.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-9-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-9.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-10-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-10.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-4.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-mod-5.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5c.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6c.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6d.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cpu-features-cpuinfo-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-cpuinfo.c x86: Don't check PTWRITE in tst-cpu-features-cpuinfo.c 2022-02-14 05:53:03 -08:00
tst-cpu-features-supports-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-supports.c x86: Use CHECK_FEATURE_PRESENT on PCONFIG 2022-02-14 05:53:03 -08:00
tst-get-cpu-features-static.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
tst-get-cpu-features.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa-1-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa-2-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-isa-level-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-isa-level-mod-1-baseline.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v2.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v3.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v4.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ldbl-nonnormal-printf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memcmp-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memmove-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memrchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memset-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-setjmp-cet.c x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] 2021-01-13 05:03:34 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strcpy-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-string-rtm.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strlen-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strncmp-rtm.c x86: Fix fallback for wcsncmp_avx2 in strcmp-avx2.S [BZ #28896] 2022-03-25 11:46:13 -05:00
tst-strrchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-sysconf-cache-linesize-static.c x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 2021-03-15 05:43:26 -07:00
tst-sysconf-cache-linesize.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-wcsncmp-rtm.c x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] 2022-02-18 16:35:18 -06:00
Versions <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00