[binutils-gdb] aarch64: Add FEAT_MPAMv2_VID system registers

Richard Ball ricbal02@sourceware.org
Fri Jan 16 12:18:10 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5fc6b09c078532fa4206a350e34d82488b80a5fb

commit 5fc6b09c078532fa4206a350e34d82488b80a5fb
Author: Richard Ball <Richard.Ball@arm.com>
Date:   Fri Jan 16 12:16:03 2026 +0000

    aarch64: Add FEAT_MPAMv2_VID system registers
    
    This patch adds the system registers defined by
    FEAT_MPAMv2_VID. These registers are:
    
       *mpamvidcr_el2
       *mpamvidsr_el2
       *mpamvidsr_el3

Diff:
---
 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(+)

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 */


More information about the Binutils-cvs mailing list