diff options
| author | German Gomez <[email protected]> | 2024-08-26 11:52:53 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2024-08-30 14:45:42 +0200 |
| commit | ae50e33852e9a9987731e4e39de38288bca2cadd (patch) | |
| tree | b7992b97a18f9555fc759b3cb4890d42dca28eac /backends | |
| parent | 597fb11a069bf96739bccaf99b4953cf8404ced1 (diff) | |
aarch64: Create definitions for AARCH64_RA_SIGN_STATE register
This register will be used to indicate whether a return address is
mangled with a PAC or not, in accordance with the DWARF AARCH64 ABI [1].
[1] https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#41dwarf-register-names
Signed-off-by: German Gomez <[email protected]>
[SteveC: move DW_AARCH64_RA_SIGN_STATE to cfi.h, fix comments]
Signed-off-by: Steve Capper <[email protected]>
Diffstat (limited to 'backends')
| -rw-r--r-- | backends/aarch64_initreg.c | 2 | ||||
| -rw-r--r-- | backends/aarch64_regs.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/backends/aarch64_initreg.c b/backends/aarch64_initreg.c index daf6f375..4661068a 100644 --- a/backends/aarch64_initreg.c +++ b/backends/aarch64_initreg.c @@ -73,6 +73,8 @@ aarch64_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), /* ELR cannot be found. */ + /* RA_SIGN_STATE cannot be found */ + /* FP registers (only 64bits are used). */ struct user_fpsimd_struct fregs; iovec.iov_base = &fregs; diff --git a/backends/aarch64_regs.c b/backends/aarch64_regs.c index 23014bfc..e95ece37 100644 --- a/backends/aarch64_regs.c +++ b/backends/aarch64_regs.c @@ -87,7 +87,10 @@ aarch64_register_info (Ebl *ebl __attribute__ ((unused)), case 33: return regtype ("integer", DW_ATE_address, "elr"); - case 34 ... 63: + case 34: + return regtype ("integer", DW_ATE_unsigned, "ra_sign_state"); + + case 35 ... 63: return 0; case 64 ... 95: |
