aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorSaurabh Jha <saurabh.jha@arm.com>2024-01-10 11:10:07 +0000
committerNick Clifton <nickc@redhat.com>2024-01-10 11:10:07 +0000
commit15f3b5baad237ef343278cc52fa17e97c7af232b (patch)
tree28648a9ab3a5fda4f41976baae79b56dfdc28dca /gas
parent83094d3de44846071cc2e3e42366ea782b3e4027 (diff)
downloadgdb-15f3b5baad237ef343278cc52fa17e97c7af232b.zip
gdb-15f3b5baad237ef343278cc52fa17e97c7af232b.tar.gz
gdb-15f3b5baad237ef343278cc52fa17e97c7af232b.tar.bz2
gas: aarch64: Add system registers for Debug and PMU extensions
This patch adds support for the new AArch64 system registers that are part of the following extensions: * FEAT_DEBUGv8p9 * FEAT_PMUv3p9 * FEAT_PMUv3_SS * FEAT_PMUv3_ICNTR * FEAT_SEBEP
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/gas/aarch64/armv8_9-a-sysregs-bad.l47
-rw-r--r--gas/testsuite/gas/aarch64/armv8_9-a-sysregs.d47
-rw-r--r--gas/testsuite/gas/aarch64/armv8_9-a-sysregs.s57
3 files changed, 151 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs-bad.l b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs-bad.l
index 71ec06e..02d9cac 100644
--- a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs-bad.l
+++ b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs-bad.l
@@ -77,3 +77,50 @@
.*: Error: selected processor does not support system register name 'tcr2_el1'
.*: Error: selected processor does not support system register name 'tcr2_el12'
.*: Error: selected processor does not support system register name 'tcr2_el2'
+.*: Error: selected processor does not support system register name 'mdselr_el1'
+.*: Error: selected processor does not support system register name 'mdselr_el1'
+.*: Error: selected processor does not support system register name 'pmuacr_el1'
+.*: Error: selected processor does not support system register name 'pmuacr_el1'
+.*: Error: selected processor does not support system register name 'pmccntsvr_el1'
+.*: Error: selected processor does not support system register name 'pmicntsvr_el1'
+.*: Error: selected processor does not support system register name 'pmsscr_el1'
+.*: Error: selected processor does not support system register name 'pmsscr_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr0_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr10_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr11_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr12_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr13_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr14_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr15_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr16_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr17_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr18_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr19_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr1_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr20_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr21_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr22_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr23_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr24_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr25_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr26_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr27_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr28_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr29_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr30_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr3_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr4_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr5_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr6_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr7_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr8_el1'
+.*: Error: selected processor does not support system register name 'pmevcntsvr9_el1'
+.*: Error: selected processor does not support system register name 'pmicntr_el0'
+.*: Error: selected processor does not support system register name 'pmicntr_el0'
+.*: Error: selected processor does not support system register name 'pmicfiltr_el0'
+.*: Error: selected processor does not support system register name 'pmicfiltr_el0'
+.*: Error: selected processor does not support system register name 'pmzr_el0'
+.*: Error: selected processor does not support system register name 'pmecr_el1'
+.*: Error: selected processor does not support system register name 'pmecr_el1'
+.*: Error: selected processor does not support system register name 'pmiar_el1'
+.*: Error: selected processor does not support system register name 'pmiar_el1'
diff --git a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.d b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.d
index ea4cc86..dc1e8bc 100644
--- a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.d
+++ b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.d
@@ -84,3 +84,50 @@ Disassembly of section \.text:
.*: d5182060 msr tcr2_el1, x0
.*: d51d2060 msr tcr2_el12, x0
.*: d51c2060 msr tcr2_el2, x0
+.*: d5300440 mrs x0, mdselr_el1
+.*: d5100440 msr mdselr_el1, x0
+.*: d5389e80 mrs x0, pmuacr_el1
+.*: d5189e80 msr pmuacr_el1, x0
+.*: d530ebe0 mrs x0, pmccntsvr_el1
+.*: d530ec00 mrs x0, pmicntsvr_el1
+.*: d5389d60 mrs x0, pmsscr_el1
+.*: d5189d60 msr pmsscr_el1, x0
+.*: d530e800 mrs x0, pmevcntsvr0_el1
+.*: d530e940 mrs x0, pmevcntsvr10_el1
+.*: d530e960 mrs x0, pmevcntsvr11_el1
+.*: d530e980 mrs x0, pmevcntsvr12_el1
+.*: d530e9a0 mrs x0, pmevcntsvr13_el1
+.*: d530e9c0 mrs x0, pmevcntsvr14_el1
+.*: d530e9e0 mrs x0, pmevcntsvr15_el1
+.*: d530ea00 mrs x0, pmevcntsvr16_el1
+.*: d530ea20 mrs x0, pmevcntsvr17_el1
+.*: d530ea40 mrs x0, pmevcntsvr18_el1
+.*: d530ea60 mrs x0, pmevcntsvr19_el1
+.*: d530e820 mrs x0, pmevcntsvr1_el1
+.*: d530ea80 mrs x0, pmevcntsvr20_el1
+.*: d530eaa0 mrs x0, pmevcntsvr21_el1
+.*: d530eac0 mrs x0, pmevcntsvr22_el1
+.*: d530eae0 mrs x0, pmevcntsvr23_el1
+.*: d530eb00 mrs x0, pmevcntsvr24_el1
+.*: d530eb20 mrs x0, pmevcntsvr25_el1
+.*: d530eb40 mrs x0, pmevcntsvr26_el1
+.*: d530eb60 mrs x0, pmevcntsvr27_el1
+.*: d530eb80 mrs x0, pmevcntsvr28_el1
+.*: d530eba0 mrs x0, pmevcntsvr29_el1
+.*: d530ebc0 mrs x0, pmevcntsvr30_el1
+.*: d530e860 mrs x0, pmevcntsvr3_el1
+.*: d530e880 mrs x0, pmevcntsvr4_el1
+.*: d530e8a0 mrs x0, pmevcntsvr5_el1
+.*: d530e8c0 mrs x0, pmevcntsvr6_el1
+.*: d530e8e0 mrs x0, pmevcntsvr7_el1
+.*: d530e900 mrs x0, pmevcntsvr8_el1
+.*: d530e920 mrs x0, pmevcntsvr9_el1
+.*: d53b9400 mrs x0, pmicntr_el0
+.*: d51b9400 msr pmicntr_el0, x0
+.*: d53b9600 mrs x0, pmicfiltr_el0
+.*: d51b9600 msr pmicfiltr_el0, x0
+.*: d51b9d80 msr pmzr_el0, x0
+.*: d5389ea0 mrs x0, pmecr_el1
+.*: d5189ea0 msr pmecr_el1, x0
+.*: d5389ee0 mrs x0, pmiar_el1
+.*: d5189ee0 msr pmiar_el1, x0 \ No newline at end of file
diff --git a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.s b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.s
index 2768c26..5366318 100644
--- a/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.s
+++ b/gas/testsuite/gas/aarch64/armv8_9-a-sysregs.s
@@ -98,3 +98,60 @@
msr tcr2_el1, x0
msr tcr2_el12, x0
msr tcr2_el2, x0
+
+ /* FEAT_DEBUGv8p9 Extension. */
+ mrs x0, mdselr_el1
+ msr mdselr_el1, x0
+
+ /* FEAT_PMUv3p9 Extension. */
+ mrs x0, pmuacr_el1
+ msr pmuacr_el1, x0
+
+ /* FEAT_PMUv3_SS Extension. */
+ mrs x0, pmccntsvr_el1
+ mrs x0, pmicntsvr_el1
+ mrs x0, pmsscr_el1
+ msr pmsscr_el1, x0
+ mrs x0, pmevcntsvr0_el1
+ mrs x0, pmevcntsvr10_el1
+ mrs x0, pmevcntsvr11_el1
+ mrs x0, pmevcntsvr12_el1
+ mrs x0, pmevcntsvr13_el1
+ mrs x0, pmevcntsvr14_el1
+ mrs x0, pmevcntsvr15_el1
+ mrs x0, pmevcntsvr16_el1
+ mrs x0, pmevcntsvr17_el1
+ mrs x0, pmevcntsvr18_el1
+ mrs x0, pmevcntsvr19_el1
+ mrs x0, pmevcntsvr1_el1
+ mrs x0, pmevcntsvr20_el1
+ mrs x0, pmevcntsvr21_el1
+ mrs x0, pmevcntsvr22_el1
+ mrs x0, pmevcntsvr23_el1
+ mrs x0, pmevcntsvr24_el1
+ mrs x0, pmevcntsvr25_el1
+ mrs x0, pmevcntsvr26_el1
+ mrs x0, pmevcntsvr27_el1
+ mrs x0, pmevcntsvr28_el1
+ mrs x0, pmevcntsvr29_el1
+ mrs x0, pmevcntsvr30_el1
+ mrs x0, pmevcntsvr3_el1
+ mrs x0, pmevcntsvr4_el1
+ mrs x0, pmevcntsvr5_el1
+ mrs x0, pmevcntsvr6_el1
+ mrs x0, pmevcntsvr7_el1
+ mrs x0, pmevcntsvr8_el1
+ mrs x0, pmevcntsvr9_el1
+
+ /* FEAT_PMUv3_ICNTR Extension. */
+ mrs x0, pmicntr_el0
+ msr pmicntr_el0, x0
+ mrs x0, pmicfiltr_el0
+ msr pmicfiltr_el0, x0
+ msr pmzr_el0, x0
+
+ /* FEAT_SEBEP Extension. */
+ mrs x0, pmecr_el1
+ msr pmecr_el1, x0
+ mrs x0, pmiar_el1
+ msr pmiar_el1, x0