aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudakshina Das <sudi.das@arm.com>2019-02-22 10:55:22 +0000
committerSudakshina Das <sudi@gcc.gnu.org>2019-02-22 10:55:22 +0000
commitc904388dc1d630939d50eac53a900ee02849b271 (patch)
tree68d87c0468834285567f2d5bebf5607c1a06df95
parent9f0ffb2bdfa04a617ca81e55ab686a80d6ad6c77 (diff)
downloadgcc-c904388dc1d630939d50eac53a900ee02849b271.zip
gcc-c904388dc1d630939d50eac53a900ee02849b271.tar.gz
gcc-c904388dc1d630939d50eac53a900ee02849b271.tar.bz2
[GCC, AArch64] Fix a couple of bugs in BTI
While doing more testing I found a couple of issues with my BTI patches. This patch fixes them: 1) Remove a reference to return address key. The original patch was written based on a different not yet committed patch ([PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key) and I missed out on cleaning this up. This is hidden behind the configuration option and thus went unnoticed. 2) Add a missed case for adding the BTI instruction in thunk functions. *** gcc/ChangeLog *** 2019-02-22 Sudakshina Das <sudi.das@arm.com> * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti instruction if enabled. (aarch64_override_options): Remove reference to return address key. From-SVN: r269112
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b2b413c..0dbcc09 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-22 Sudakshina Das <sudi.das@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
+ instruction if enabled.
+ (aarch64_override_options): Remove reference to return address key.
+
2019-02-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/89440
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 0fd0b0e..91e79d3 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -5980,6 +5980,9 @@ aarch64_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED,
rtx this_rtx, temp0, temp1, addr, funexp;
rtx_insn *insn;
+ if (aarch64_bti_enabled ())
+ emit_insn (gen_bti_c());
+
reload_completed = 1;
emit_note (NOTE_INSN_PROLOGUE_END);
@@ -12032,7 +12035,6 @@ aarch64_override_options (void)
{
#ifdef TARGET_ENABLE_PAC_RET
aarch64_ra_sign_scope = AARCH64_FUNCTION_NON_LEAF;
- aarch64_ra_sign_key = AARCH64_KEY_A;
#else
aarch64_ra_sign_scope = AARCH64_FUNCTION_NONE;
#endif