From 2bd00179885928fd95fcabfafc50e7b5c6e660d2 Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Tue, 17 Oct 2023 16:54:21 +0100 Subject: AArch64: Add support for MOPS memcpy/memmove/memset Add support for MOPS in cpu_features and INIT_ARCH. Add ifuncs using MOPS for memcpy, memmove and memset (use .inst for now so it works with all binutils versions without needing complex configure and conditional compilation). Reviewed-by: Szabolcs Nagy --- sysdeps/unix/sysv/linux/aarch64/cpu-features.c | 3 +++ sysdeps/unix/sysv/linux/aarch64/cpu-features.h | 1 + 2 files changed, 4 insertions(+) (limited to 'sysdeps/unix/sysv/linux/aarch64') diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c index dc09c1c827..233d5b2407 100644 --- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c +++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c @@ -120,4 +120,7 @@ init_cpu_features (struct cpu_features *cpu_features) /* Check if SVE is supported. */ cpu_features->sve = GLRO (dl_hwcap) & HWCAP_SVE; + + /* Check if MOPS is supported. */ + cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS; } diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h index d67d286b53..40b709677d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h +++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h @@ -76,6 +76,7 @@ struct cpu_features /* Currently, the GLIBC memory tagging tunable only defines 8 bits. */ uint8_t mte_state; bool sve; + bool mops; }; #endif /* _CPU_FEATURES_AARCH64_H */ -- cgit 1.4.1