]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
aarch64: Update system register gating
authorAlice Carlotti <alice.carlotti@arm.com>
Tue, 2 Sep 2025 14:45:39 +0000 (15:45 +0100)
committerAlice Carlotti <alice.carlotti@arm.com>
Tue, 23 Sep 2025 18:42:44 +0000 (19:42 +0100)
commit2742455bf45fd42c22935a22ddea82dbb74b0f27
treec9aab448f5fc00d56858e33aebe80b67b381207a
parentab1f841c47ab19b4afa83ef61f2fb699a29dde73
aarch64: Update system register gating

Historically we have been inconsistent and overly restrictive in our
choice of features to gate system register accesses.  (Originally this
gating was always applied, but now it is disabled unless the
--menable-sysreg-checking option is specified).

This patch updates these constraints, following the principle that we
should only reject a system register access if it requires some
architecture feature or version whose corresponding command line
extension has not been enabled.

The most common change in this patch concerns system registers that
were:
- part of a feature FEAT_X with no corresponding command line extension;
- introduced in a newer architecture version ArmvX.Z;
- permitted to be implemented from an earlier version ArmvX.Y.
Previously these system registers tended to be gated on ArmvX.Z or left
ungated, but following the above principle they are now gated on ArmvX.Y
instead.
12 files changed:
gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l
gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s
gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l
gas/testsuite/gas/aarch64/sysreg/sysreg-8.s
gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
opcodes/aarch64-sys-regs.def