aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorjiwang <jiwang@138bc75d-0d04-0410-961f-82ee72b054a4>2017-01-20 21:03:41 +0000
committerjiwang <jiwang@138bc75d-0d04-0410-961f-82ee72b054a4>2017-01-20 21:03:41 +0000
commit58c979ed152204a58353601ff0cf6f862f09e49a (patch)
tree32abdbe25b84dfdbd24f7c5db95c8890a88fc093 /libgcc
parent864029adfb71301fc58e3f303759c34d75e6cdb2 (diff)
[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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244732 138bc75d-0d04-0410-961f-82ee72b054a4
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 63b2ff1fbb9..98aa1043e94 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 a43d965b358..94e0d3426fd 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 fe74387992a..3f26eaf73de 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;