diff options
author | Jiong Wang <jiong.wang@arm.com> | 2017-01-20 21:03:41 +0000 |
---|---|---|
committer | Jiong Wang <jiwang@gcc.gnu.org> | 2017-01-20 21:03:41 +0000 |
commit | a876231c40c9e3488d91bd64aa7a12c939babe51 (patch) | |
tree | 32abdbe25b84dfdbd24f7c5db95c8890a88fc093 /libgcc | |
parent | 5dc8f5d9e6765ec1083afe8968dd88d8aa029150 (diff) | |
download | gcc-a876231c40c9e3488d91bd64aa7a12c939babe51.zip gcc-a876231c40c9e3488d91bd64aa7a12c939babe51.tar.gz gcc-a876231c40c9e3488d91bd64aa7a12c939babe51.tar.bz2 |
[AArch64] Only build & test pauth code for LP64
gcc/
* config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
register pauth builtins for LP64 only.
libgcc/
* config/aarch64/aarch64-unwind.h: Empty this file on ILP32.
* unwind-dw2.c (execute_cfa_program): Only multiplexing
DW_CFA_GNU_window_save for AArch64 and LP64.
gcc/testsuite/
* testsuite/gcc.target/aarch64/return_address_sign_1.c: Enable on LP64
only.
* testsuite/gcc.target/aarch64/return_address_sign_2.c: Likewise.
* testsuite/gcc.target/aarch64/return_address_sign_3.c: Likewise.
From-SVN: r244732
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 6 | ||||
-rw-r--r-- | libgcc/config/aarch64/aarch64-unwind.h | 4 | ||||
-rw-r--r-- | libgcc/unwind-dw2.c | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 63b2ff1..98aa104 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,5 +1,11 @@ 2017-01-20 Jiong Wang <jiong.wang@arm.com> + * config/aarch64/aarch64-unwind.h: Empty this file on ILP32. + * unwind-dw2.c (execute_cfa_program): Only multiplexing + DW_CFA_GNU_window_save for AArch64 and LP64. + +2017-01-20 Jiong Wang <jiong.wang@arm.com> + * config/aarch64/linux-unwind.h: Always include aarch64-unwind.h. 2017-01-19 Jiong Wang <jiong.wang@arm.com> diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h index a43d965..94e0d34 100644 --- a/libgcc/config/aarch64/aarch64-unwind.h +++ b/libgcc/config/aarch64/aarch64-unwind.h @@ -22,7 +22,7 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef AARCH64_UNWIND_H +#if !defined (AARCH64_UNWIND_H) && !defined (__ILP32__) #define AARCH64_UNWIND_H #define DWARF_REGNUM_AARCH64_RA_STATE 34 @@ -84,4 +84,4 @@ aarch64_frob_update_context (struct _Unwind_Context *context, return; } -#endif /* defined AARCH64_UNWIND_H */ +#endif /* defined AARCH64_UNWIND_H && defined __ILP32__ */ diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c index fe74387..3f26eaf 100644 --- a/libgcc/unwind-dw2.c +++ b/libgcc/unwind-dw2.c @@ -1187,7 +1187,7 @@ execute_cfa_program (const unsigned char *insn_ptr, break; case DW_CFA_GNU_window_save: -#ifdef __aarch64__ +#if defined (__aarch64__) && !defined (__ILP32__) /* This CFA is multiplexed with Sparc. On AArch64 it's used to toggle return address signing status. */ fs->regs.reg[DWARF_REGNUM_AARCH64_RA_STATE].loc.offset ^= 1; |