[PATCH v2 3/3] aarch64: deprecate mpamv2_vid sysregs

Richard Earnshaw <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.