target/arm: Implement gdbstub pauth extension
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 27 Feb 2023 21:33:26 +0000 (11:33 -1000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 6 Mar 2023 14:08:11 +0000 (14:08 +0000)
commite995d5cce4a022afc4624471cafd2e4eb72962e6
tree608192b3e8f286b980878e528dee54b270dadd48
parentabf1f1b03aad07d9b7aa4bb5b06ac5a2c7b134d1
target/arm: Implement gdbstub pauth extension

The extension is primarily defined by the Linux kernel NT_ARM_PAC_MASK
ptrace register set.

The original gdb feature consists of two masks, data and code, which are
used to mask out the authentication code within a pointer.  Following
discussion with Luis Machado, add two more masks in order to support
pointers within the high half of the address space (i.e. TTBR1 vs TTBR0).

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1105
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20230227213329.793795-12-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
configs/targets/aarch64-linux-user.mak
configs/targets/aarch64-softmmu.mak
configs/targets/aarch64_be-linux-user.mak
gdb-xml/aarch64-pauth.xml [new file with mode: 0644]
target/arm/gdbstub.c
target/arm/gdbstub64.c
target/arm/internals.h