diff options
author | Jiong Wang <jiong.wang@arm.com> | 2017-01-20 00:19:01 +0000 |
---|---|---|
committer | Jiong Wang <jiwang@gcc.gnu.org> | 2017-01-20 00:19:01 +0000 |
commit | 5636faf2bcd1a82bb2a2b22a4146602c45c5508a (patch) | |
tree | a4200a84af112696952a0471531da8b9d2130bf8 /libgcc/config/aarch64 | |
parent | 1d9a762962461a40a179022dc962b384d36f9d96 (diff) | |
download | gcc-5636faf2bcd1a82bb2a2b22a4146602c45c5508a.tar.gz |
[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/aarch64')
-rw-r--r-- | libgcc/config/aarch64/linux-unwind.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h index 1256f010007..a8fa1d50452 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 |