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

Alice Carlotti <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
On Fri, Jun 26, 2026 at 02:35:16PM +0100, Richard Earnshaw wrote:
> 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.

This was only added in the previous Binutils release, so I think we can avoid
marking stuff as deprecated and just delete it.  I also discussed with the LLVM
team that we wouldn't have created the +mpamv2 flag without the presence of the
corresponding system instructions (which this patch doesn't address at all),
and we agreed that we should remove that flag as well.

Alice

> ---
>  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.