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 /gcc | |
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 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c | 1 |
6 files changed, 23 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67ccfa8..10a6978 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-01-20 Jiong Wang <jiong.wang@arm.com> + + * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register + register pauth builtins for LP64 only. + 2017-01-20 Marek Polacek <polacek@redhat.com> PR c/79152 diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index 6c6530c..f09399f 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -983,9 +983,14 @@ aarch64_init_builtins (void) aarch64_init_crc32_builtins (); aarch64_init_builtin_rsqrt (); -/* Initialize pointer authentication builtins which are backed by instructions - in NOP encoding space. */ - aarch64_init_pauth_hint_builtins (); + /* Initialize pointer authentication builtins which are backed by instructions + in NOP encoding space. + + NOTE: these builtins are supposed to be used by libgcc unwinder only, as + there is no support on return address signing under ILP32, we don't + register them. */ + if (!TARGET_ILP32) + aarch64_init_pauth_hint_builtins (); } tree diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dbbe345..292731d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2017-01-20 Jiong Wang <jiong.wang@arm.com> + + * 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. + 2017-01-20 Nathan Sidwell <nathan@acm.org> PR c++/79495 diff --git a/gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c b/gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c index fda72a4..f87c3d2 100644 --- a/gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c +++ b/gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c @@ -1,6 +1,7 @@ /* Testing return address signing where no combined instructions used. */ /* { dg-do compile } */ /* { dg-options "-O2 -msign-return-address=all" } */ +/* { dg-require-effective-target lp64 } */ int foo (int); diff --git a/gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c b/gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c index 54fe47a..c5c1439 100644 --- a/gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c +++ b/gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c @@ -1,6 +1,7 @@ /* Testing return address signing where combined instructions used. */ /* { dg-do compile } */ /* { dg-options "-O2 -msign-return-address=all" } */ +/* { dg-require-effective-target lp64 } */ int foo (int); int bar (int, int); diff --git a/gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c b/gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c index adc5eff..7d9ec6e 100644 --- a/gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c +++ b/gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c @@ -1,6 +1,7 @@ /* Testing the disable of return address signing. */ /* { dg-do compile } */ /* { dg-options "-O2 -msign-return-address=all" } */ +/* { dg-require-effective-target lp64 } */ int bar (int, int); |