[PATCH 3/3] aarch64: deprecate mpamv2_vid sysregs

Richard Earnshaw rearnsha@arm.com
Thu Jun 25 14:36:39 GMT 2026


These registers were never implemented in any products and have been
withdrawn from the architecture.  Mark the registers as deprecated
and update the testsuite accordingly.
---
 gas/NEWS                                           |  7 ++++---
 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l  | 12 ++++++++++++
 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l | 13 +++++++++++++
 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d      | 13 +++++++------
 opcodes/aarch64-sys-regs.def                       |  6 +++---
 5 files changed, 39 insertions(+), 12 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l

diff --git a/gas/NEWS b/gas/NEWS
index db6135b90d0..8b077351356 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,8 +1,9 @@
 -*- text -*-
 
-* Arm has obsoleted the TME feature from the architecture because no
-  implementations were ever produced.  The assembler will now warn if
-  instructions from this extension are detected during assembly.
+* The aarch64 extensions TME and MPAMv2_VID have never been implemented in any
+  products.  Arm has withdrawn the from the architecture.  The assembler will
+  now warn if instructions or system registers from either extension are
+  detected during assembly.
 
 * The legacy .vtable_entry and .vtable_inherit directives that were
   needed for versions of GCC prior to gcc-3.0 (when the generic C++
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
index 6ab3d16fba0..a61ec858e73 100644
--- a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-bad.l
@@ -1,13 +1,25 @@
 .*: Assembler messages:
 .*: Error: selected processor does not support system register name 'mpamvidcr_el2'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'mpamvidcr_el2'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'mpamvidsr_el2'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'mpamvidsr_el2'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'mpamvidsr_el3'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'mpamvidsr_el3'
 .*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l
new file mode 100644
index 00000000000..36636384020
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l
@@ -0,0 +1,13 @@
+.*: Assembler messages:
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
+.*:  Info: macro invoked from here
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
+.*:  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
index 88c0c1883d8..feab902a3b8 100644
--- a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
@@ -1,4 +1,5 @@
 #as: -menable-sysreg-checking -march=armv8-a+mpamv2 -I$srcdir/$subdir
+#warning_output: mpamv2_vid-depr.l
 #objdump: -dr
 
 .*:     file format .*
@@ -6,9 +7,9 @@
 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
+.*:	d51ca700 	msr	s3_4_c10_c7_0, x0
+.*:	d53ca700 	mrs	x0, s3_4_c10_c7_0
+.*:	d51ca720 	msr	s3_4_c10_c7_1, x0
+.*:	d53ca720 	mrs	x0, s3_4_c10_c7_1
+.*:	d51ea720 	msr	s3_6_c10_c7_1, x0
+.*:	d53ea720 	mrs	x0, s3_6_c10_c7_1
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 9daa178ed7b..e8eee8a7c66 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -929,9 +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 ("mpamvidcr_el2",	CPENC (3,4,10,7,0),	F_DEPRECATED,	AARCH64_FEATURE (MPAMv2))
+  SYSREG ("mpamvidsr_el2",	CPENC (3,4,10,7,1),	F_DEPRECATED,	AARCH64_FEATURE (MPAMv2))
+  SYSREG ("mpamvidsr_el3",	CPENC (3,6,10,7,1),	F_DEPRECATED,	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.43.0



More information about the Binutils mailing list