This patch add DWARF unwinder support for signed (mangled) return address on AArch64. If return address is signed, GDB unwinders will be affected, as GDB won't be able to unwind to previous frame use the signed address. Therefore, GDB needs a mechanism to restore the original value of return address accurately. Currently, the mechanism on AArch64 is: 1. DW_CFA_AARCH64_negate_ra_state (multiplexing with DW_CFA_GNU_window_save) is generated whenever return address (LR register) is signed (mangled) or authenticated (unmangled). The unwinder can know the signing status of return address at any point after finishing scaning function FDE. 2. A new DWARF pseudo register "ra_state" is introduced, the signing status is kept in this register after unwinders finishing scaning function FDE. 3. When the unwinders unwinding PC, the value of "ra_state" needs to be referenced. If the value is "1" which means true, unwinders need to mask off the pointer signature to restore the original pointer value. The mask for return address which is a code pointer is available at "pauth_cmask" register. gdb/ 2017-08-09 Jiong Wang Yao Qi * aarch64-tdep.c: Include dwarf2.h. (aarch64_dwarf2_prev_register): Mask off signature if LR is signed. (aarch64_dwarf2_frame_init_reg): Initialize DWARF unwinding rule for "pauth" registers. (aarch64_execute_dwarf_cfa_vendor_op): New function. (aarch64_dwarf_reg_to_regnum): Map "pauth" DWARF registers. (aarch64_pseudo_register_name): Handle "pauth" registers. (aarch64_pseudo_register_type): Likewise. (aarch64_pseudo_register_reggroup_p): Likewise. (aarch64_gdbarch_init): Support the new "ra_state" pseudo register. Register execute_dwarf_cfa_vendor_op method. * aarch64-tdep.h (AARCH64_DWARF_PAUTH_RA_STATE): New define. (AARCH64_DWARF_PAUTH_DMASK): Likewise. (AARCH64_DWARF_PAUTH_CMASK): Likewise. (struct aarch64_optional_regnum) : New field.