[PATCH v2 3/3] aarch64: deprecate mpamv2_vid sysregs
Richard Earnshaw
rearnsha@arm.com
Fri Jun 26 13:35:16 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/aarch64/sysreg/mpamv2_vid-depr.l | 7 +++++++
gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d | 15 ++++++++-------
opcodes/aarch64-sys-regs.def | 6 +++---
5 files changed, 34 insertions(+), 13 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l
diff --git a/gas/NEWS b/gas/NEWS
index 116d5e62be6..62c28932189 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,8 +1,9 @@
-*- text -*-
-* The aarch64 TME extension has never been implemented in any products. Arm
- has withdrawn it from the architecture. The assembler will now warn if
- instructions from the extension are detected during assembly.
+* The aarch64 extensions TME and MPAMv2_VID have never been implemented in any
+ products. Arm has withdrawn them 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..6fc9b23b70b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid-depr.l
@@ -0,0 +1,7 @@
+.*: Assembler messages:
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*: Warning: system register name 'mpamvidcr_el2' is deprecated and may be removed in a future release
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*: Warning: system register name 'mpamvidsr_el2' is deprecated and may be removed in a future release
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
+.*: Warning: system register name 'mpamvidsr_el3' is deprecated and may be removed in a future release
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d b/gas/testsuite/gas/aarch64/sysreg/mpamv2_vid.d
index 88c0c1883d8..1399d095d54 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
+#as: -menable-sysreg-checking -march=armv8-a+mpamv2 -I$srcdir/$subdir --no-info
+#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