[PATCH 1/2] aarch64: Add FEAT_MPAMv2_VID system registers
Alice Carlotti
alice.carlotti@arm.com
Fri Jan 16 03:32:37 GMT 2026
On Thu, Jan 15, 2026 at 06:42:19PM +0000, richard.ball@arm.com wrote:
> From: Richard Ball <Richard.Ball@arm.com>
>
> This patch adds the system registers defined by
> FEAT_MPAMv2_VID. These registers are:
>
> *mpamvidcr_el2
> *mpamvidsr_el2
> *mpamvidsr_el3
> ---
> gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.d | 3 +++
> gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l | 13 +++++++++++++
> gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d | 14 ++++++++++++++
> gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s | 5 +++++
> opcodes/aarch64-sys-regs.def | 3 +++
> 5 files changed, 38 insertions(+)
> create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.d
> create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
> create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
> create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s
OK, thanks.
Alice
>
> diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.d b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.d
> new file mode 100644
> index 00000000000..5d00da59694
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.d
> @@ -0,0 +1,3 @@
> +#as: -march=armv9.4-a -menable-sysreg-checking -I$srcdir/$subdir
> +#source: mpamv2_vid.s
> +#error_output: mpamv2_vid-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
> new file mode 100644
> index 00000000000..6ab3d16fba0
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
> @@ -0,0 +1,13 @@
> +.*: Assembler messages:
> +.*: Error: selected processor does not support system register name 'mpamvidcr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mpamvidcr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mpamvidsr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mpamvidsr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mpamvidsr_el3'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mpamvidsr_el3'
> +.*: Info: macro invoked from here
> diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
> new file mode 100644
> index 00000000000..88c0c1883d8
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
> @@ -0,0 +1,14 @@
> +#as: -menable-sysreg-checking -march=armv8-a+mpamv2 -I$srcdir/$subdir
> +#objdump: -dr
> +
> +.*: file format .*
> +
> +Disassembly of section \.text:
> +
> +0+ <.*>:
> +.*: d51ca700 msr mpamvidcr_el2, x0
> +.*: d53ca700 mrs x0, mpamvidcr_el2
> +.*: d51ca720 msr mpamvidsr_el2, x0
> +.*: d53ca720 mrs x0, mpamvidsr_el2
> +.*: d51ea720 msr mpamvidsr_el3, x0
> +.*: d53ea720 mrs x0, mpamvidsr_el3
> diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s
> new file mode 100644
> index 00000000000..132d48f0781
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s
> @@ -0,0 +1,5 @@
> +.include "sysreg-test-utils.inc"
> +
> + rw_sys_reg mpamvidcr_el2
> + rw_sys_reg mpamvidsr_el2
> + rw_sys_reg mpamvidsr_el3
> diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
> index 1c57598d52d..f4761438716 100644
> --- a/opcodes/aarch64-sys-regs.def
> +++ b/opcodes/aarch64-sys-regs.def
> @@ -929,6 +929,9 @@
> SYSREG ("mpamhcr_el2", CPENC (3,4,10,4,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
> SYSREG ("mpamidr_el1", CPENC (3,0,10,4,4), F_REG_READ, AARCH64_FEATURE (V8_2A)) /* MPAM */
> SYSREG ("mpamsm_el1", CPENC (3,0,10,5,3), 0, AARCH64_FEATURES (2, SME, V8_2A)) /* SME && MPAM */
> + SYSREG ("mpamvidcr_el2", CPENC (3,4,10,7,0), 0, AARCH64_FEATURE (MPAMv2))
> + SYSREG ("mpamvidsr_el2", CPENC (3,4,10,7,1), 0, AARCH64_FEATURE (MPAMv2))
> + SYSREG ("mpamvidsr_el3", CPENC (3,6,10,7,1), 0, AARCH64_FEATURE (MPAMv2))
> SYSREG ("mpamvpm0_el2", CPENC (3,4,10,6,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
> SYSREG ("mpamvpm1_el2", CPENC (3,4,10,6,1), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
> SYSREG ("mpamvpm2_el2", CPENC (3,4,10,6,2), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
> --
> 2.34.1
>
More information about the Binutils
mailing list