aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2017-01-20 21:03:41 +0000
committerJiong Wang <jiwang@gcc.gnu.org>2017-01-20 21:03:41 +0000
commita876231c40c9e3488d91bd64aa7a12c939babe51 (patch)
tree32abdbe25b84dfdbd24f7c5db95c8890a88fc093 /gcc
parent5dc8f5d9e6765ec1083afe8968dd88d8aa029150 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64-builtins.c11
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c1
-rw-r--r--gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c1
-rw-r--r--gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c1
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);