[glibc] Arch64: Add support for SVE2 ifuncs
Wilco Dijkstra via Glibc-cvs <[email protected]> Wed, 27 May 2026 13:25:49 +0000 (GMT)
| Newsgroups | gmane.comp.lib.glibc.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b26cc4fbb74f516fc2b26bdfe7e524392d940250 commit b26cc4fbb74f516fc2b26bdfe7e524392d940250 Author: Wilco Dijkstra <[email protected]> Date: Wed May 6 15:28:25 2026 +0000 Arch64: Add support for SVE2 ifuncs Add support for SVE2 in cpu-features. Minor cleanup of init-arch.h. Reviewed-by: Yury Khrustalev <[email protected]> Diff: --- sysdeps/aarch64/cpu-features.h | 1 + sysdeps/aarch64/dl-diagnostics-cpu.c | 1 + sysdeps/aarch64/multiarch/init-arch.h | 19 +++++-------------- sysdeps/unix/sysv/linux/aarch64/cpu-features.c | 1 + 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/sysdeps/aarch64/cpu-features.h b/sysdeps/aarch64/cpu-features.h index d6367a4596..d1377c0dca 100644 --- a/sysdeps/aarch64/cpu-features.h +++ b/sysdeps/aarch64/cpu-features.h @@ -69,6 +69,7 @@ struct cpu_features bool sve; bool unused; bool mops; + bool sve2; }; #endif /* _CPU_FEATURES_AARCH64_H */ diff --git a/sysdeps/aarch64/dl-diagnostics-cpu.c b/sysdeps/aarch64/dl-diagnostics-cpu.c index 697868cb25..cbc2645f56 100644 --- a/sysdeps/aarch64/dl-diagnostics-cpu.c +++ b/sysdeps/aarch64/dl-diagnostics-cpu.c @@ -48,6 +48,7 @@ _dl_diagnostics_cpu (void) print_cpu_features_value ("mte_state", GLRO (dl_aarch64_cpu_features).mte_state); print_cpu_features_value ("sve", GLRO (dl_aarch64_cpu_features).sve); + print_cpu_features_value ("sve2", GLRO (dl_aarch64_cpu_features).sve2); print_cpu_features_value ("zva_size", GLRO (dl_aarch64_cpu_features).zva_size); diff --git a/sysdeps/aarch64/multiarch/init-arch.h b/sysdeps/aarch64/multiarch/init-arch.h index 8afd91164f..e00d1746d8 100644 --- a/sysdeps/aarch64/multiarch/init-arch.h +++ b/sysdeps/aarch64/multiarch/init-arch.h @@ -19,22 +19,13 @@ #include <ldsodefs.h> #include <sys/auxv.h> -/* Make glibc MTE-safe on a system that supports MTE in case user code - enables tag checks independently of the mte_status of glibc. There - is currently no ABI contract for enabling tag checks in user code, - but this can be useful for debugging with MTE. */ -#define MTE_ENABLED() (GLRO(dl_hwcap2) & HWCAP2_MTE) - #define INIT_ARCH() \ uint64_t __attribute__((unused)) midr = \ GLRO(dl_aarch64_cpu_features).midr_el1; \ unsigned __attribute__((unused)) zva_size = \ GLRO(dl_aarch64_cpu_features).zva_size; \ - bool __attribute__((unused)) bti = \ - GLRO(dl_aarch64_cpu_features).bti; \ - bool __attribute__((unused)) mte = \ - MTE_ENABLED (); \ - bool __attribute__((unused)) sve = \ - GLRO(dl_aarch64_cpu_features).sve; \ - bool __attribute__((unused)) mops = \ - GLRO(dl_aarch64_cpu_features).mops; + bool __attribute__((unused)) bti = GLRO(dl_aarch64_cpu_features).bti; \ + bool __attribute__((unused)) mte = GLRO(dl_hwcap2) & HWCAP2_MTE; \ + bool __attribute__((unused)) sve = GLRO(dl_aarch64_cpu_features).sve; \ + bool __attribute__((unused)) sve2 = GLRO(dl_aarch64_cpu_features).sve2; \ + bool __attribute__((unused)) mops = GLRO(dl_aarch64_cpu_features).mops; diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c index 36bd72bb12..2e8887ce23 100644 --- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c +++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c @@ -125,6 +125,7 @@ init_cpu_features (struct cpu_features *cpu_features) /* Check if SVE is supported. */ cpu_features->sve = GLRO (dl_hwcap) & HWCAP_SVE; + cpu_features->sve2 = GLRO (dl_hwcap2) & HWCAP2_SVE2; /* Check if MOPS is supported. */ cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS;