[PATCH] aarch64: Add FEAT_MPAMv2 system registers

Ezra.Sitorus@arm.com Ezra.Sitorus@arm.com
Wed Jan 14 16:47:40 GMT 2026


From: Ezra Sitorus <ezra.sitorus@arm.com>

---
This patch adds the MPAMv2 sysregs. 
Regression tested on aarch64-none-linux-gnu.

Ezra

 gas/testsuite/gas/aarch64/sysreg/mpamv2.d | 14 ++++++++++++++
 gas/testsuite/gas/aarch64/sysreg/mpamv2.s |  5 +++++
 opcodes/aarch64-sys-regs.def              |  3 +++
 3 files changed, 22 insertions(+)
 create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2.d
 create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2.s

diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2.d b/gas/testsuite/gas/aarch64/sysreg/mpamv2.d
new file mode 100644
index 00000000000..fee7d2b9f0e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2.d
@@ -0,0 +1,14 @@
+#as: -march=armv9.4-a -I$srcdir/$subdir
+#objdump: -dr
+
+.*:     file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+.*:	d51da540 	msr	mpamctl_el1, x0
+.*:	d53da540 	mrs	x0, mpamctl_el1
+.*:	d518a540 	msr	mpamctl_el2, x0
+.*:	d538a540 	mrs	x0, mpamctl_el2
+.*:	d51ea540 	msr	mpamctl_el3, x0
+.*:	d53ea540 	mrs	x0, mpamctl_el3
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2.s b/gas/testsuite/gas/aarch64/sysreg/mpamv2.s
new file mode 100644
index 00000000000..882ec40c5c5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2.s
@@ -0,0 +1,5 @@
+.include "sysreg-test-utils.inc"
+
+	rw_sys_reg mpamctl_el1
+	rw_sys_reg mpamctl_el2
+	rw_sys_reg mpamctl_el3
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 818c2adbec7..f57e02cecdf 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -922,6 +922,9 @@
   SYSREG ("mpambwcap_el2",	CPENC (3,4,10,5,6),	0,		AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
   SYSREG ("mpambwidr_el1",	CPENC (3,0,10,4,5),	F_REG_READ,	AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
   SYSREG ("mpambwsm_el1",	CPENC (3,0,10,5,7),	0,		AARCH64_FEATURES (2, SME, V9_3A)) /* SME && MPAM_PE_BW_CTRL */
+  SYSREG ("mpamctl_el1",	CPENC (3,5,10,5,2),	0,		AARCH64_FEATURE (V9_4A)) /* MPAMV2 */
+  SYSREG ("mpamctl_el2",	CPENC (3,0,10,5,2),	0,		AARCH64_FEATURE (V9_4A)) /* MPAMV2 */
+  SYSREG ("mpamctl_el3",	CPENC (3,6,10,5,2),	0,		AARCH64_FEATURE (V9_4A)) /* MPAMV2 */
   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 */
-- 
2.43.0



More information about the Binutils mailing list