]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Add FEAT_MPAMv2_VID system registers
authorRichard Ball <Richard.Ball@arm.com>
Fri, 16 Jan 2026 12:16:03 +0000 (12:16 +0000)
committerRichard Ball <Richard.Ball@arm.com>
Fri, 16 Jan 2026 12:16:03 +0000 (12:16 +0000)
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 [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.s [new file with mode: 0644]
opcodes/aarch64-sys-regs.def

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 (file)
index 0000000..5d00da5
--- /dev/null
@@ -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 (file)
index 0000000..6ab3d16
--- /dev/null
@@ -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 (file)
index 0000000..88c0c18
--- /dev/null
@@ -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 (file)
index 0000000..132d48f
--- /dev/null
@@ -0,0 +1,5 @@
+.include "sysreg-test-utils.inc"
+
+       rw_sys_reg mpamvidcr_el2
+       rw_sys_reg mpamvidsr_el2
+       rw_sys_reg mpamvidsr_el3
index 1c57598d52dce7e94f1a34ee193292ada3bcbf64..f4761438716addaff79c1b91f7d3fb6c239992b8 100644 (file)
   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 */