aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2017-01-20 00:19:01 +0000
committerJiong Wang <jiwang@gcc.gnu.org>2017-01-20 00:19:01 +0000
commit5636faf2bcd1a82bb2a2b22a4146602c45c5508a (patch)
treea4200a84af112696952a0471531da8b9d2130bf8 /libgcc/config
parent1d9a762962461a40a179022dc962b384d36f9d96 (diff)
downloadgcc-5636faf2bcd1a82bb2a2b22a4146602c45c5508a.zip
gcc-5636faf2bcd1a82bb2a2b22a4146602c45c5508a.tar.gz
gcc-5636faf2bcd1a82bb2a2b22a4146602c45c5508a.tar.bz2
[AArch64][4/4] libgcc unwinder support for return address signing
libgcc/ * config/aarch64/aarch64-unwind.h: New file. (DWARF_REGNUM_AARCH64_RA_STATE): Define. (MD_POST_EXTRACT_ROOT_ADDR): New target marcro and define it on AArch64. (MD_POST_EXTRACT_FRAME_ADDR): Likewise. (MD_POST_FROB_EH_HANDLER_ADDR): Likewise. (MD_FROB_UPDATE_CONTEXT): Define it on AArch64. (aarch64_post_extract_frame_addr): New function. (aarch64_post_frob_eh_handler_addr): New function. (aarch64_frob_update_context): New function. * config/aarch64/linux-unwind.h: Include aarch64-unwind.h * config.host (aarch64*-*-elf, aarch64*-*-rtems*, aarch64*-*-freebsd*): Initialize md_unwind_header to include aarch64-unwind.h. * unwind-dw2.c (struct _Unwind_Context): Define "RA_A_SIGNED_BIT". (execute_cfa_program): Multiplex DW_CFA_GNU_window_save for __aarch64__. (uw_update_context): Honor MD_POST_EXTRACT_FRAME_ADDR. (uw_init_context_1): Honor MD_POST_EXTRACT_ROOT_ADDR. (uw_frob_return_addr): New function. (uw_install_context): Use uw_frob_return_addr. From-SVN: r244673
Diffstat (limited to 'libgcc/config')
-rw-r--r--libgcc/config/aarch64/linux-unwind.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h
index 1256f01..a8fa1d5 100644
--- a/libgcc/config/aarch64/linux-unwind.h
+++ b/libgcc/config/aarch64/linux-unwind.h
@@ -24,6 +24,7 @@
#include <signal.h>
#include <sys/ucontext.h>
+#include "config/aarch64/aarch64-unwind.h"
/* Since insns are always stored LE, on a BE system the opcodes will