From c904388dc1d630939d50eac53a900ee02849b271 Mon Sep 17 00:00:00 2001 From: Sudakshina Das Date: Fri, 22 Feb 2019 10:55:22 +0000 Subject: [PATCH] [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 * 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/aarch64/aarch64.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b2b413c7536..0dbcc09de39 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-02-22 Sudakshina Das + + * 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 PR tree-optimization/89440 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 0fd0b0ed085..91e79d3fea4 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 -- 2.30.2