armv8: Add support of pointer authentication
commitd0436b0cdabb2106701222628d78932c973a1e62
authorKoudai Iwahori <koudai@google.com>
Tue, 4 Oct 2022 11:21:35 +0000 (4 04:21 -0700)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 15 Jan 2023 14:51:44 +0000 (15 14:51 +0000)
tree0055aa21084ebfa6dd8c6ecaa289e9a6d9105257
parentd96dc47ef67e427cd64a07d9825fd297e3a81633
armv8: Add support of pointer authentication

When pointer authentication is enabled, some upper bits of the link
register (LR[63:VA_SIZE]) are used to store a signature. Therefore, GDB
need to remove the signature to get backtraces.
GDB has support of pointer authentication. When pointer authenticaion is
enabled, GDB requests 8-bytes mask to the target to remove the
signature. mask[63:VA_SIZE] should be all set and mask[VA_SIZE-1:0]
should be all cleared. GDB removes the signature by addr&~mask or
addr|mask.
I added a feature to provide the mask for pointer authentication.

Signed-off-by: Koudai Iwahori <koudai@google.com>
Change-Id: I56fbbf9cc23619b6536ecd326f350c8bf137f322
Reviewed-on: https://review.openocd.org/c/openocd/+/7248
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
doc/openocd.texi
src/target/armv8.c
src/target/armv8.h