about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNaohiro Tamura <naohirot@jp.fujitsu.com>2021-05-12 09:27:20 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2021-05-26 12:01:06 +0100
commitbd4317fbd60a0fa416761aaafb4e32ca1ad22d38 (patch)
treeab8272bb217557cda99574502364bcb5e6e520fc
parent77d175e14e5f4cf24e9579c03eef5d006a286316 (diff)
downloadglibc-bd4317fbd60a0fa416761aaafb4e32ca1ad22d38.tar.gz
glibc-bd4317fbd60a0fa416761aaafb4e32ca1ad22d38.tar.xz
glibc-bd4317fbd60a0fa416761aaafb4e32ca1ad22d38.zip
aarch64: define BTI_C and BTI_J macros as NOP unless HAVE_AARCH64_BTI
This patch defines BTI_C and BTI_J macros conditionally for
performance.
If HAVE_AARCH64_BTI is true, BTI_C and BTI_J are defined as HINT
instruction for ARMv8.5 BTI (Branch Target Identification).
If HAVE_AARCH64_BTI is false, both BTI_C and BTI_J are defined as
NOP.
-rw-r--r--sysdeps/aarch64/sysdep.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
index 90acca4e42..b936e29cbd 100644
--- a/sysdeps/aarch64/sysdep.h
+++ b/sysdeps/aarch64/sysdep.h
@@ -62,8 +62,13 @@ strip_pac (void *p)
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 /* Branch Target Identitication support.  */
-#define BTI_C		hint	34
-#define BTI_J		hint	36
+#if HAVE_AARCH64_BTI
+# define BTI_C		hint	34
+# define BTI_J		hint	36
+#else
+# define BTI_C		nop
+# define BTI_J		nop
+#endif
 
 /* Return address signing support (pac-ret).  */
 #define PACIASP		hint	25