diff options
author | Sudakshina Das <sudi.das@arm.com> | 2019-02-22 10:55:22 +0000 |
---|---|---|
committer | Sudakshina Das <sudi@gcc.gnu.org> | 2019-02-22 10:55:22 +0000 |
commit | c904388dc1d630939d50eac53a900ee02849b271 (patch) | |
tree | 68d87c0468834285567f2d5bebf5607c1a06df95 /gcc | |
parent | 9f0ffb2bdfa04a617ca81e55ab686a80d6ad6c77 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 4 |
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 |