[AArch64][4/4] libgcc unwinder support for return address signing
authorJiong Wang <jiong.wang@arm.com>
Fri, 20 Jan 2017 00:19:01 +0000 (00:19 +0000)
committerJiong Wang <jiwang@gcc.gnu.org>
Fri, 20 Jan 2017 00:19:01 +0000 (00:19 +0000)
commit5636faf2bcd1a82bb2a2b22a4146602c45c5508a
treea4200a84af112696952a0471531da8b9d2130bf8
parent1d9a762962461a40a179022dc962b384d36f9d96
[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
libgcc/ChangeLog
libgcc/config.host
libgcc/config/aarch64/linux-unwind.h
libgcc/unwind-dw2.c