aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2023-02-22 14:35:00 +0000
committerYury Khrustalev <yury.khrustalev@arm.com>2025-01-20 09:22:41 +0000
commit58771b8a5900585b7561197f743580b91bb61de0 (patch)
tree6f9f2c1e4601cb1e5f8d3cea71b826eb2490775a
parent8ef17919509e909746b0ad6465e9c6c952a3fe34 (diff)
downloadglibc-58771b8a5900585b7561197f743580b91bb61de0.zip
glibc-58771b8a5900585b7561197f743580b91bb61de0.tar.gz
glibc-58771b8a5900585b7561197f743580b91bb61de0.tar.bz2
aarch64: Add asm helpers for GCS
The Guarded Control Stack instructions can be present even if the hardware does not support the extension (runtime checked feature), so the asm code should be backward compatible with old assemblers. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
-rw-r--r--sysdeps/aarch64/sysdep.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
index 1b31773..4df120a 100644
--- a/sysdeps/aarch64/sysdep.h
+++ b/sysdeps/aarch64/sysdep.h
@@ -74,6 +74,13 @@ strip_pac (void *p)
#define PACIASP hint 25
#define AUTIASP hint 29
+/* Guarded Control Stack support. */
+#define CHKFEAT_X16 hint 40
+#define MRS_GCSPR(x) mrs x, s3_3_c2_c5_1
+#define GCSPOPM(x) sysl x, #3, c7, c7, #1
+#define GCSSS1(x) sys #3, c7, c7, #2, x
+#define GCSSS2(x) sysl x, #3, c7, c7, #3
+
/* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */
#define FEATURE_1_AND 0xc0000000
#define FEATURE_1_BTI 1