aarch64: Add THE system register support
authorVictor Do Nascimento <victor.donascimento@arm.com>
Wed, 1 Nov 2023 13:44:45 +0000 (13:44 +0000)
committerVictor Do Nascimento <victor.donascimento@arm.com>
Tue, 7 Nov 2023 20:38:11 +0000 (20:38 +0000)
commit9203a155ee9722be40d48fbd970c9e8ce3355dff
tree2733f2a84e2838e42c57796ddba141cd9005fcf4
parent8c3273ee07fae4badfd6f25f67162e5f6ec7f03e
aarch64: Add THE system register support

Add Binutils support for system registers associated with the
Translation Hardening Extension (THE).

In doing so, we also add core feature support for THE, enabling its
associated feature flag and implementing the necessary
feature-checking machinery.

Regression tested on aarch64-linux-gnu, no regressions.

gas/ChangeLog:

* config/tc-aarch64.c (aarch64_features): Add "+the" feature modifier.
* doc/c-aarch64.texi (AArch64 Extensions): Update
documentation for `the' option.
* testsuite/gas/aarch64/sysreg-8.s: Add tests for `the'
associated system registers.
* testsuite/gas/aarch64/sysreg-8.d: Likewise.

include/ChangeLog:

* opcode/aarch64.h (enum aarch64_feature_bit): Add
AARCH64_FEATURE_THE.

opcode/ChangeLog:

* aarch64-opc.c (aarch64_sys_ins_reg_supported_p): Add `the'
system register check support.
* aarch64-sys-regs.def: Add `rcwmask_el1' and `rcwsmask_el1'
* aarch64-tbl.h: Define `THE' preprocessor macro.
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
gas/testsuite/gas/aarch64/sysreg-8.d
gas/testsuite/gas/aarch64/sysreg-8.s
include/opcode/aarch64.h
opcodes/aarch64-opc.c
opcodes/aarch64-sys-regs.def
opcodes/aarch64-tbl.h