aboutsummaryrefslogtreecommitdiff
path: root/libgcc
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 /libgcc
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 'libgcc')
-rw-r--r--libgcc/ChangeLog6
-rw-r--r--libgcc/config/aarch64/aarch64-unwind.h4
-rw-r--r--libgcc/unwind-dw2.c2
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;