about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2023-02-22 14:35:00 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2024-02-02 15:58:10 +0000
commit15d1674cae644619d521af249b3a4f1c17cdcee9 (patch)
treec6d0cf10f3017855f6d7c28347b7a714346cf285
parentccb4e98a6cbdf5b8939a6ae416248bb1436a1338 (diff)
downloadglibc-15d1674cae644619d521af249b3a4f1c17cdcee9.tar.gz
glibc-15d1674cae644619d521af249b3a4f1c17cdcee9.tar.xz
glibc-15d1674cae644619d521af249b3a4f1c17cdcee9.zip
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.
-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 464674e89c..661d9fe8c1 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