AArch64: Prologue scan unwinder support for signed return addresses
authorAlan Hayward <alan.hayward@arm.com>
Fri, 22 Mar 2019 10:41:15 +0000 (10:41 +0000)
committerAlan Hayward <alan.hayward@arm.com>
Fri, 22 Mar 2019 10:41:15 +0000 (10:41 +0000)
commit17e116a7d1501a46cf4e45ec181148dc6a1e3e2b
tree40deddfbbe26fc77b1acb428e170a8a3d600a8b2
parent11e1b75f0696f6e406fe8ccc759bac2fbc8fc151
AArch64: Prologue scan unwinder support for signed return addresses

Pauth address signing is enabled at binary compile time.  When enabled the
return addresses for functions may be mangled.  This patch adds functionality
to restore the original address for use in the prologue scan unwinder.

In the prologue analyzer, check for PACIASP/PACIBSP (enable address mangling)
and AUTIASP/AUTIBSP (disable address mangling).

When unwinding the PC from the prologue, unmask the register if required.

Add a test case to the prologue tests.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_analyze_prologue): Check for pauth
instructions.
(aarch64_analyze_prologue_test): Add PACIASP test.
(aarch64_prologue_prev_register): Unmask PC value.
gdb/ChangeLog
gdb/aarch64-tdep.c