public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH][Binutils] aarch64: add SPMU system registers missed in f01ae0392ed
@ 2024-05-31 14:10 Matthieu Longo
  2024-06-14 14:18 ` Richard Earnshaw (lists)
  0 siblings, 1 reply; 2+ messages in thread
From: Matthieu Longo @ 2024-05-31 14:10 UTC (permalink / raw)
  To: binutils; +Cc: Richard Earnshaw, Nick Clifton

[-- Attachment #1: Type: text/plain, Size: 1891 bytes --]

This patch adds SPMU system registers missed in f01ae0392ed.

~SPMACCESSR_EL1: System Performance Monitors Access Register (EL1) 
(already added in f01ae0392ed)~
SPMACCESSR_EL2: System Performance Monitors Access Register (EL2)
SPMACCESSR_EL3: System Performance Monitors Access Register (EL3)
SPMCFGR_EL1: System Performance Monitors Configuration Register
SPMCGCR<n>_EL1: System PMU Counter Group Configuration Register <n>
SPMCNTENCLR_EL0: System Performance Monitors Count Enable Clear Register
SPMCNTENSET_EL0: System Performance Monitors Count Enable Set Register
~SPMCR_EL0: System Performance Monitor Control Register (already added 
in f01ae0392ed)~
~SPMDEVAFF_EL1: System Performance Monitors Device Affinity Register 
(already added in f01ae0392ed)~
SPMDEVARCH_EL1: System Performance Monitors Device Architecture Register
SPMEVCNTR<n>_EL0: System Performance Monitors Event Count Register
SPMEVFILT2R<n>_EL0: System Performance Monitors Event Filter Control 
Register 2
SPMEVFILTR<n>_EL0: System Performance Monitors Event Filter Control Register
SPMEVTYPER<n>_EL0: System Performance Monitors Event Type Register
SPMIIDR_EL1: System PMU Implementation Identification Register
SPMINTENCLR_EL1: System Performance Monitors Interrupt Enable Clear Register
~SPMINTENSET_EL1: System Performance Monitors Interrupt Enable Set 
Register (already added in f01ae0392ed)~
SPMOVSCLR_EL0: System Performance Monitors Overflow Flag Status Clear 
Register
SPMOVSSET_EL0: System Performance Monitors Overflow Flag Status Set Register
SPMROOTCR_EL3: System Performance Monitors Root and Realm Control Register
SPMSCR_EL1: System Performance Monitors Secure Control Register

The SPMU patch also adds relevant tests.
Regression tested on aarch64-none-elf, and no regression found.

Ok for binutils-master? I don't have commit access so I need someone to 
commit on my behalf.

Regards,
Matthieu.

[-- Attachment #2: 0001-aarch64-add-SPMU-system-registers-missed-in-f01ae039.patch --]
[-- Type: text/plain, Size: 39924 bytes --]

From 800476b52876af61223543f52445ab854c8af5e6 Mon Sep 17 00:00:00 2001
From: Matthieu Longo <matthieu.longo@arm.com>
Date: Tue, 28 May 2024 15:47:37 +0100
Subject: [PATCH] aarch64: add SPMU system registers missed in f01ae0392ed

---
 .../aarch64/sysreg/armv8_9-a-sysregs-bad.l    | 306 ++++++++++++++++++
 .../gas/aarch64/sysreg/armv8_9-a-sysregs.d    | 155 ++++++++-
 .../gas/aarch64/sysreg/armv8_9-a-sysregs.s    |  79 +++++
 opcodes/aarch64-sys-regs.def                  |  79 +++++
 4 files changed, 618 insertions(+), 1 deletion(-)

diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
index 9cf94755cf6..5f3ffef9354 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
@@ -208,16 +208,322 @@
 .*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmaccessr_el1'
 .*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmaccessr_el2'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmaccessr_el2'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmaccessr_el3'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmaccessr_el3'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcfgr_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcgcr0_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcgcr1_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcntenclr_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcntenclr_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcntenset_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmcntenset_el0'
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmcr_el0'
 .*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmcr_el0'
 .*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmdevaff_el1'
 .*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmdevarch_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevcntr15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfilt2r15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevfiltr15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper0_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper1_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper2_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper3_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper4_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper5_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper6_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper7_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper8_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper9_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper10_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper11_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper12_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper13_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper14_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmevtyper15_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmiidr_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmintenclr_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmintenclr_el1'
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmintenset_el1'
 .*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'spmintenset_el1'
 .*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmovsclr_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmovsclr_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmovsset_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmovsset_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmrootcr_el3'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmrootcr_el3'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmscr_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmscr_el1'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmselr_el0'
+.*:  Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'spmselr_el0'
+.*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'pmecr_el1'
 .*:  Info: macro invoked from here
 .*: Error: selected processor does not support system register name 'pmecr_el1'
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
index 4c19a501a3f..ca675c47d27 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
@@ -130,12 +130,165 @@ Disassembly of section \.text:
 .*:	d51b9d80 	msr	pmzr_el0, x0
 .*:	d5109d60 	msr	spmaccessr_el1, x0
 .*:	d5309d60 	mrs	x0, spmaccessr_el1
+.*:	d5149d60 	msr	spmaccessr_el2, x0
+.*:	d5349d60 	mrs	x0, spmaccessr_el2
+.*:	d5169d60 	msr	spmaccessr_el3, x0
+.*:	d5369d60 	mrs	x0, spmaccessr_el3
+.*:	d5309de0 	mrs	x0, spmcfgr_el1
+.*:	d5309d00 	mrs	x0, spmcgcr0_el1
+.*:	d5309d20 	mrs	x0, spmcgcr1_el1
+.*:	d5139c40 	msr	spmcntenclr_el0, x0
+.*:	d5339c40 	mrs	x0, spmcntenclr_el0
+.*:	d5139c20 	msr	spmcntenset_el0, x0
+.*:	d5339c20 	mrs	x0, spmcntenset_el0
 .*:	d5139c00 	msr	spmcr_el0, x0
 .*:	d5339c00 	mrs	x0, spmcr_el0
 .*:	d5309dc0 	mrs	x0, spmdevaff_el1
+.*:	d5309da0 	mrs	x0, spmdevarch_el1
+.*:	d513e000 	msr	spmevcntr0_el0, x0
+.*:	d533e000 	mrs	x0, spmevcntr0_el0
+.*:	d513e020 	msr	spmevcntr1_el0, x0
+.*:	d533e020 	mrs	x0, spmevcntr1_el0
+.*:	d513e040 	msr	spmevcntr2_el0, x0
+.*:	d533e040 	mrs	x0, spmevcntr2_el0
+.*:	d513e060 	msr	spmevcntr3_el0, x0
+.*:	d533e060 	mrs	x0, spmevcntr3_el0
+.*:	d513e080 	msr	spmevcntr4_el0, x0
+.*:	d533e080 	mrs	x0, spmevcntr4_el0
+.*:	d513e0a0 	msr	spmevcntr5_el0, x0
+.*:	d533e0a0 	mrs	x0, spmevcntr5_el0
+.*:	d513e0c0 	msr	spmevcntr6_el0, x0
+.*:	d533e0c0 	mrs	x0, spmevcntr6_el0
+.*:	d513e0e0 	msr	spmevcntr7_el0, x0
+.*:	d533e0e0 	mrs	x0, spmevcntr7_el0
+.*:	d513e100 	msr	spmevcntr8_el0, x0
+.*:	d533e100 	mrs	x0, spmevcntr8_el0
+.*:	d513e120 	msr	spmevcntr9_el0, x0
+.*:	d533e120 	mrs	x0, spmevcntr9_el0
+.*:	d513e140 	msr	spmevcntr10_el0, x0
+.*:	d533e140 	mrs	x0, spmevcntr10_el0
+.*:	d513e160 	msr	spmevcntr11_el0, x0
+.*:	d533e160 	mrs	x0, spmevcntr11_el0
+.*:	d513e180 	msr	spmevcntr12_el0, x0
+.*:	d533e180 	mrs	x0, spmevcntr12_el0
+.*:	d513e1a0 	msr	spmevcntr13_el0, x0
+.*:	d533e1a0 	mrs	x0, spmevcntr13_el0
+.*:	d513e1c0 	msr	spmevcntr14_el0, x0
+.*:	d533e1c0 	mrs	x0, spmevcntr14_el0
+.*:	d513e1e0 	msr	spmevcntr15_el0, x0
+.*:	d533e1e0 	mrs	x0, spmevcntr15_el0
+.*:	d513e600 	msr	spmevfilt2r0_el0, x0
+.*:	d533e600 	mrs	x0, spmevfilt2r0_el0
+.*:	d513e620 	msr	spmevfilt2r1_el0, x0
+.*:	d533e620 	mrs	x0, spmevfilt2r1_el0
+.*:	d513e640 	msr	spmevfilt2r2_el0, x0
+.*:	d533e640 	mrs	x0, spmevfilt2r2_el0
+.*:	d513e660 	msr	spmevfilt2r3_el0, x0
+.*:	d533e660 	mrs	x0, spmevfilt2r3_el0
+.*:	d513e680 	msr	spmevfilt2r4_el0, x0
+.*:	d533e680 	mrs	x0, spmevfilt2r4_el0
+.*:	d513e6a0 	msr	spmevfilt2r5_el0, x0
+.*:	d533e6a0 	mrs	x0, spmevfilt2r5_el0
+.*:	d513e6c0 	msr	spmevfilt2r6_el0, x0
+.*:	d533e6c0 	mrs	x0, spmevfilt2r6_el0
+.*:	d513e6e0 	msr	spmevfilt2r7_el0, x0
+.*:	d533e6e0 	mrs	x0, spmevfilt2r7_el0
+.*:	d513e700 	msr	spmevfilt2r8_el0, x0
+.*:	d533e700 	mrs	x0, spmevfilt2r8_el0
+.*:	d513e720 	msr	spmevfilt2r9_el0, x0
+.*:	d533e720 	mrs	x0, spmevfilt2r9_el0
+.*:	d513e740 	msr	spmevfilt2r10_el0, x0
+.*:	d533e740 	mrs	x0, spmevfilt2r10_el0
+.*:	d513e760 	msr	spmevfilt2r11_el0, x0
+.*:	d533e760 	mrs	x0, spmevfilt2r11_el0
+.*:	d513e780 	msr	spmevfilt2r12_el0, x0
+.*:	d533e780 	mrs	x0, spmevfilt2r12_el0
+.*:	d513e7a0 	msr	spmevfilt2r13_el0, x0
+.*:	d533e7a0 	mrs	x0, spmevfilt2r13_el0
+.*:	d513e7c0 	msr	spmevfilt2r14_el0, x0
+.*:	d533e7c0 	mrs	x0, spmevfilt2r14_el0
+.*:	d513e7e0 	msr	spmevfilt2r15_el0, x0
+.*:	d533e7e0 	mrs	x0, spmevfilt2r15_el0
+.*:	d513e400 	msr	spmevfiltr0_el0, x0
+.*:	d533e400 	mrs	x0, spmevfiltr0_el0
+.*:	d513e420 	msr	spmevfiltr1_el0, x0
+.*:	d533e420 	mrs	x0, spmevfiltr1_el0
+.*:	d513e440 	msr	spmevfiltr2_el0, x0
+.*:	d533e440 	mrs	x0, spmevfiltr2_el0
+.*:	d513e460 	msr	spmevfiltr3_el0, x0
+.*:	d533e460 	mrs	x0, spmevfiltr3_el0
+.*:	d513e480 	msr	spmevfiltr4_el0, x0
+.*:	d533e480 	mrs	x0, spmevfiltr4_el0
+.*:	d513e4a0 	msr	spmevfiltr5_el0, x0
+.*:	d533e4a0 	mrs	x0, spmevfiltr5_el0
+.*:	d513e4c0 	msr	spmevfiltr6_el0, x0
+.*:	d533e4c0 	mrs	x0, spmevfiltr6_el0
+.*:	d513e4e0 	msr	spmevfiltr7_el0, x0
+.*:	d533e4e0 	mrs	x0, spmevfiltr7_el0
+.*:	d513e500 	msr	spmevfiltr8_el0, x0
+.*:	d533e500 	mrs	x0, spmevfiltr8_el0
+.*:	d513e520 	msr	spmevfiltr9_el0, x0
+.*:	d533e520 	mrs	x0, spmevfiltr9_el0
+.*:	d513e540 	msr	spmevfiltr10_el0, x0
+.*:	d533e540 	mrs	x0, spmevfiltr10_el0
+.*:	d513e560 	msr	spmevfiltr11_el0, x0
+.*:	d533e560 	mrs	x0, spmevfiltr11_el0
+.*:	d513e580 	msr	spmevfiltr12_el0, x0
+.*:	d533e580 	mrs	x0, spmevfiltr12_el0
+.*:	d513e5a0 	msr	spmevfiltr13_el0, x0
+.*:	d533e5a0 	mrs	x0, spmevfiltr13_el0
+.*:	d513e5c0 	msr	spmevfiltr14_el0, x0
+.*:	d533e5c0 	mrs	x0, spmevfiltr14_el0
+.*:	d513e5e0 	msr	spmevfiltr15_el0, x0
+.*:	d533e5e0 	mrs	x0, spmevfiltr15_el0
+.*:	d513e200 	msr	spmevtyper0_el0, x0
+.*:	d533e200 	mrs	x0, spmevtyper0_el0
+.*:	d513e220 	msr	spmevtyper1_el0, x0
+.*:	d533e220 	mrs	x0, spmevtyper1_el0
+.*:	d513e240 	msr	spmevtyper2_el0, x0
+.*:	d533e240 	mrs	x0, spmevtyper2_el0
+.*:	d513e260 	msr	spmevtyper3_el0, x0
+.*:	d533e260 	mrs	x0, spmevtyper3_el0
+.*:	d513e280 	msr	spmevtyper4_el0, x0
+.*:	d533e280 	mrs	x0, spmevtyper4_el0
+.*:	d513e2a0 	msr	spmevtyper5_el0, x0
+.*:	d533e2a0 	mrs	x0, spmevtyper5_el0
+.*:	d513e2c0 	msr	spmevtyper6_el0, x0
+.*:	d533e2c0 	mrs	x0, spmevtyper6_el0
+.*:	d513e2e0 	msr	spmevtyper7_el0, x0
+.*:	d533e2e0 	mrs	x0, spmevtyper7_el0
+.*:	d513e300 	msr	spmevtyper8_el0, x0
+.*:	d533e300 	mrs	x0, spmevtyper8_el0
+.*:	d513e320 	msr	spmevtyper9_el0, x0
+.*:	d533e320 	mrs	x0, spmevtyper9_el0
+.*:	d513e340 	msr	spmevtyper10_el0, x0
+.*:	d533e340 	mrs	x0, spmevtyper10_el0
+.*:	d513e360 	msr	spmevtyper11_el0, x0
+.*:	d533e360 	mrs	x0, spmevtyper11_el0
+.*:	d513e380 	msr	spmevtyper12_el0, x0
+.*:	d533e380 	mrs	x0, spmevtyper12_el0
+.*:	d513e3a0 	msr	spmevtyper13_el0, x0
+.*:	d533e3a0 	mrs	x0, spmevtyper13_el0
+.*:	d513e3c0 	msr	spmevtyper14_el0, x0
+.*:	d533e3c0 	mrs	x0, spmevtyper14_el0
+.*:	d513e3e0 	msr	spmevtyper15_el0, x0
+.*:	d533e3e0 	mrs	x0, spmevtyper15_el0
+.*:	d5309d80 	mrs	x0, spmiidr_el1
+.*:	d5109e40 	msr	spmintenclr_el1, x0
+.*:	d5309e40 	mrs	x0, spmintenclr_el1
 .*:	d5109e20 	msr	spmintenset_el1, x0
 .*:	d5309e20 	mrs	x0, spmintenset_el1
+.*:	d5139c60 	msr	spmovsclr_el0, x0
+.*:	d5339c60 	mrs	x0, spmovsclr_el0
+.*:	d5139e60 	msr	spmovsset_el0, x0
+.*:	d5339e60 	mrs	x0, spmovsset_el0
+.*:	d5169ee0 	msr	spmrootcr_el3, x0
+.*:	d5369ee0 	mrs	x0, spmrootcr_el3
+.*:	d5179ee0 	msr	spmscr_el1, x0
+.*:	d5379ee0 	mrs	x0, spmscr_el1
+.*:	d5139ca0 	msr	spmselr_el0, x0
+.*:	d5339ca0 	mrs	x0, spmselr_el0
 .*:	d5189ea0 	msr	pmecr_el1, x0
 .*:	d5389ea0 	mrs	x0, pmecr_el1
 .*:	d5189ee0 	msr	pmiar_el1, x0
-.*:	d5389ee0 	mrs	x0, pmiar_el1
\ No newline at end of file
+.*:	d5389ee0 	mrs	x0, pmiar_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.s
index 6a01cb43289..42d52736d29 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.s
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.s
@@ -109,9 +109,88 @@
 
 	/* FEAT_SPMU */
 	rw_sys_reg sys_reg=spmaccessr_el1 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmaccessr_el2 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmaccessr_el3 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmcfgr_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmcgcr0_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmcgcr1_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmcntenclr_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmcntenset_el0 xreg=x0 r=1 w=1
 	rw_sys_reg sys_reg=spmcr_el0 xreg=x0 r=1 w=1
 	rw_sys_reg sys_reg=spmdevaff_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmdevarch_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmevcntr0_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr1_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr2_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr3_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr4_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr5_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr6_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr7_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr8_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr9_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr10_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr11_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr12_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr13_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr14_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevcntr15_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r0_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r1_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r2_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r3_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r4_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r5_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r6_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r7_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r8_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r9_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r10_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r11_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r12_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r13_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r14_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfilt2r15_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr0_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr1_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr2_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr3_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr4_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr5_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr6_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr7_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr8_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr9_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr10_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr11_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr12_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr13_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr14_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevfiltr15_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper0_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper1_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper2_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper3_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper4_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper5_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper6_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper7_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper8_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper9_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper10_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper11_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper12_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper13_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper14_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmevtyper15_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmiidr_el1 xreg=x0 r=1 w=0
+	rw_sys_reg sys_reg=spmintenclr_el1 xreg=x0 r=1 w=1
 	rw_sys_reg sys_reg=spmintenset_el1 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmovsclr_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmovsset_el0 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmrootcr_el3 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmscr_el1 xreg=x0 r=1 w=1
+	rw_sys_reg sys_reg=spmselr_el0 xreg=x0 r=1 w=1
 
 	/* FEAT_SEBEP Extension.  */
 	rw_sys_reg sys_reg=pmecr_el1 xreg=x0 r=1 w=1
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 10b57c11e19..3e68035d62a 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -869,9 +869,88 @@
   SYSREG ("sp_el1",		CPENC (3,4,4,1,0),	0,			AARCH64_NO_FEATURES)
   SYSREG ("sp_el2",		CPENC (3,6,4,1,0),	0,			AARCH64_NO_FEATURES)
   SYSREG ("spmaccessr_el1",	CPENC (2,0,9,13,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmaccessr_el2",	CPENC (2,4,9,13,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmaccessr_el3",	CPENC (2,6,9,13,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmcfgr_el1",	CPENC (2,0,9,13,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmcgcr0_el1",	CPENC (2,0,9,13,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmcgcr1_el1",	CPENC (2,0,9,13,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmcntenclr_el0",	CPENC (2,3,9,12,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmcntenset_el0",	CPENC (2,3,9,12,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
   SYSREG ("spmcr_el0",		CPENC (2,3,9,12,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
   SYSREG ("spmdevaff_el1",	CPENC (2,0,9,13,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmdevarch_el1",	CPENC (2,0,9,13,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr0_el0",	CPENC (2,3,14,0,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr1_el0",	CPENC (2,3,14,0,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr2_el0",	CPENC (2,3,14,0,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr3_el0",	CPENC (2,3,14,0,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr4_el0",	CPENC (2,3,14,0,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr5_el0",	CPENC (2,3,14,0,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr6_el0",	CPENC (2,3,14,0,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr7_el0",	CPENC (2,3,14,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr8_el0",	CPENC (2,3,14,1,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr9_el0",	CPENC (2,3,14,1,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr10_el0",	CPENC (2,3,14,1,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr11_el0",	CPENC (2,3,14,1,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr12_el0",	CPENC (2,3,14,1,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr13_el0",	CPENC (2,3,14,1,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr14_el0",	CPENC (2,3,14,1,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevcntr15_el0",	CPENC (2,3,14,1,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r0_el0",	CPENC (2,3,14,6,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r1_el0",	CPENC (2,3,14,6,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r2_el0",	CPENC (2,3,14,6,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r3_el0",	CPENC (2,3,14,6,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r4_el0",	CPENC (2,3,14,6,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r5_el0",	CPENC (2,3,14,6,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r6_el0",	CPENC (2,3,14,6,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r7_el0",	CPENC (2,3,14,6,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r8_el0",	CPENC (2,3,14,7,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r9_el0",	CPENC (2,3,14,7,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r10_el0",	CPENC (2,3,14,7,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r11_el0",	CPENC (2,3,14,7,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r12_el0",	CPENC (2,3,14,7,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r13_el0",	CPENC (2,3,14,7,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r14_el0",	CPENC (2,3,14,7,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfilt2r15_el0",	CPENC (2,3,14,7,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr0_el0",	CPENC (2,3,14,4,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr1_el0",	CPENC (2,3,14,4,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr2_el0",	CPENC (2,3,14,4,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr3_el0",	CPENC (2,3,14,4,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr4_el0",	CPENC (2,3,14,4,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr5_el0",	CPENC (2,3,14,4,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr6_el0",	CPENC (2,3,14,4,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr7_el0",	CPENC (2,3,14,4,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr8_el0",	CPENC (2,3,14,5,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr9_el0",	CPENC (2,3,14,5,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr10_el0",	CPENC (2,3,14,5,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr11_el0",	CPENC (2,3,14,5,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr12_el0",	CPENC (2,3,14,5,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr13_el0",	CPENC (2,3,14,5,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr14_el0",	CPENC (2,3,14,5,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevfiltr15_el0",	CPENC (2,3,14,5,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper0_el0",	CPENC (2,3,14,2,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper1_el0",	CPENC (2,3,14,2,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper2_el0",	CPENC (2,3,14,2,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper3_el0",	CPENC (2,3,14,2,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper4_el0",	CPENC (2,3,14,2,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper5_el0",	CPENC (2,3,14,2,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper6_el0",	CPENC (2,3,14,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper7_el0",	CPENC (2,3,14,2,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper8_el0",	CPENC (2,3,14,3,0),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper9_el0",	CPENC (2,3,14,3,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper10_el0",	CPENC (2,3,14,3,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper11_el0",	CPENC (2,3,14,3,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper12_el0",	CPENC (2,3,14,3,4),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper13_el0",	CPENC (2,3,14,3,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper14_el0",	CPENC (2,3,14,3,6),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmevtyper15_el0",	CPENC (2,3,14,3,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmiidr_el1",	CPENC (2,0,9,13,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SPMU))
+  SYSREG ("spmintenclr_el1",	CPENC (2,0,9,14,2),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
   SYSREG ("spmintenset_el1",	CPENC (2,0,9,14,1),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmovsclr_el0",	CPENC (2,3,9,12,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmovsset_el0",	CPENC (2,3,9,14,3),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmrootcr_el3",	CPENC (2,6,9,14,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmscr_el1",		CPENC (2,7,9,14,7),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
+  SYSREG ("spmselr_el0",	CPENC (2,3,9,12,5),	F_ARCHEXT,		AARCH64_FEATURE (SPMU))
   SYSREG ("spsel",		CPENC (3,0,4,2,0),	0,			AARCH64_NO_FEATURES)
   SYSREG ("spsr_abt",		CPENC (3,4,4,3,1),	0,			AARCH64_NO_FEATURES)
   SYSREG ("spsr_el1",		CPENC (3,0,4,0,0),	0,			AARCH64_NO_FEATURES)
-- 
2.45.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH][Binutils] aarch64: add SPMU system registers missed in f01ae0392ed
  2024-05-31 14:10 [PATCH][Binutils] aarch64: add SPMU system registers missed in f01ae0392ed Matthieu Longo
@ 2024-06-14 14:18 ` Richard Earnshaw (lists)
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Earnshaw (lists) @ 2024-06-14 14:18 UTC (permalink / raw)
  To: Matthieu Longo, binutils; +Cc: Nick Clifton

On 31/05/2024 15:10, Matthieu Longo wrote:
> This patch adds SPMU system registers missed in f01ae0392ed.
> 
> ~SPMACCESSR_EL1: System Performance Monitors Access Register (EL1) (already added in f01ae0392ed)~
> SPMACCESSR_EL2: System Performance Monitors Access Register (EL2)
> SPMACCESSR_EL3: System Performance Monitors Access Register (EL3)
> SPMCFGR_EL1: System Performance Monitors Configuration Register
> SPMCGCR<n>_EL1: System PMU Counter Group Configuration Register <n>
> SPMCNTENCLR_EL0: System Performance Monitors Count Enable Clear Register
> SPMCNTENSET_EL0: System Performance Monitors Count Enable Set Register
> ~SPMCR_EL0: System Performance Monitor Control Register (already added in f01ae0392ed)~
> ~SPMDEVAFF_EL1: System Performance Monitors Device Affinity Register (already added in f01ae0392ed)~
> SPMDEVARCH_EL1: System Performance Monitors Device Architecture Register
> SPMEVCNTR<n>_EL0: System Performance Monitors Event Count Register
> SPMEVFILT2R<n>_EL0: System Performance Monitors Event Filter Control Register 2
> SPMEVFILTR<n>_EL0: System Performance Monitors Event Filter Control Register
> SPMEVTYPER<n>_EL0: System Performance Monitors Event Type Register
> SPMIIDR_EL1: System PMU Implementation Identification Register
> SPMINTENCLR_EL1: System Performance Monitors Interrupt Enable Clear Register
> ~SPMINTENSET_EL1: System Performance Monitors Interrupt Enable Set Register (already added in f01ae0392ed)~
> SPMOVSCLR_EL0: System Performance Monitors Overflow Flag Status Clear Register
> SPMOVSSET_EL0: System Performance Monitors Overflow Flag Status Set Register
> SPMROOTCR_EL3: System Performance Monitors Root and Realm Control Register
> SPMSCR_EL1: System Performance Monitors Secure Control Register
> 
> The SPMU patch also adds relevant tests.
> Regression tested on aarch64-none-elf, and no regression found.
> 
> Ok for binutils-master? I don't have commit access so I need someone to commit on my behalf.
> 
> Regards,
> Matthieu.

Thanks, pushed.

R.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-06-14 14:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-31 14:10 [PATCH][Binutils] aarch64: add SPMU system registers missed in f01ae0392ed Matthieu Longo
2024-06-14 14:18 ` Richard Earnshaw (lists)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).