aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>2020-09-28 15:49:11 +0100
committerNick Clifton <nickc@redhat.com>2020-09-28 15:49:11 +0100
commit12e35da62fbce831da2bb591e31d05aa4060d11a (patch)
tree1c9e204a997d9a06e1fbe7f2b034149d84ac937d
parent47e1f9deaa3a3fce74609af00cab770056874766 (diff)
downloadfsf-binutils-gdb-12e35da62fbce831da2bb591e31d05aa4060d11a.zip
fsf-binutils-gdb-12e35da62fbce831da2bb591e31d05aa4060d11a.tar.gz
fsf-binutils-gdb-12e35da62fbce831da2bb591e31d05aa4060d11a.tar.bz2
This patch introduces ETMv4 (Embedded Trace Macrocell) system registers for the AArch64 architecture.
gas * testsuite/gas/aarch64/etm-ro-invalid.d: New test. * testsuite/gas/aarch64/etm-ro-invalid.l: New test. * testsuite/gas/aarch64/etm-ro-invalid.s: New test. * testsuite/gas/aarch64/etm-ro.s: New test. * testsuite/gas/aarch64/etm-wo-invalid.d: New test. * testsuite/gas/aarch64/etm-wo-invalid.l: New test. * testsuite/gas/aarch64/etm-wo-invalid.s: New test. * testsuite/gas/aarch64/etm-wo.s: New test. * testsuite/gas/aarch64/etm.s: New test. * testsuite/gas/aarch64/sysreg.d: system register s2_1_c0_c3_0 disassembled now to trcstatr. opcodes * aarch64-opc.c: Added ETMv4 system registers TRCACATRn, TRCACVRn, TRCAUTHSTATUS, TRCAUXCTLR, TRCBBCTLR, TRCCCCTLR, TRCCIDCCTLR0, TRCCIDCCTLR1, TRCCIDCVRn, TRCCIDR0, TRCCIDR1, TRCCIDR2, TRCCIDR3, TRCCLAIMCLR, TRCCLAIMSET, TRCCNTCTLRn, TRCCNTRLDVRn, TRCCNTVRn, TRCCONFIGR, TRCDEVAFF0, TRCDEVAFF1, TRCDEVARCH, TRCDEVID, TRCDEVTYPE, TRCDVCMRn, TRCDVCVRn, TRCEVENTCTL0R, TRCEVENTCTL1R, TRCEXTINSELR, TRCIDR0, TRCIDR1, TRCIDR2, TRCIDR3, TRCIDR4, TRCIDR5, TRCIDR6, TRCIDR7, TRCIDR8, TRCIDR9, TRCIDR10, TRCIDR11, TRCIDR12, TRCIDR13, TRCIMSPEC0, TRCIMSPECn, TRCITCTRL, TRCLAR WOTRCLSR, TRCOSLAR WOTRCOSLSR, TRCPDCR, TRCPDSR, TRCPIDR0, TRCPIDR1, TRCPIDR2, TRCPIDR3, TRCPIDR4, TRCPIDR[5,6,7], TRCPRGCTLR, TRCP,CSELR, TRCQCTLR, TRCRSCTLRn, TRCSEQEVRn, TRCSEQRSTEVR, TRCSEQSTR, TRCSSCCRn, TRCSSCSRn, TRCSSPCICRn, TRCSTALLCTLR, TRCSTATR, TRCSYNCPR, TRCTRACEIDR, TRCTSCTLR, TRCVDARCCTLR, TRCVDCTLR, TRCVDSACCTLR, TRCVICTLR, TRCVIIECTLR, TRCVIPCSSCTLR, TRCVISSCTLR, TRCVMIDCCTLR0, TRCVMIDCCTLR1 and TRCVMIDCVRn.
-rw-r--r--gas/ChangeLog28
-rw-r--r--gas/testsuite/gas/aarch64/etm-ro-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/etm-ro-invalid.l37
-rw-r--r--gas/testsuite/gas/aarch64/etm-ro-invalid.s39
-rw-r--r--gas/testsuite/gas/aarch64/etm-ro.d44
-rw-r--r--gas/testsuite/gas/aarch64/etm-ro.s39
-rw-r--r--gas/testsuite/gas/aarch64/etm-wo-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/etm-wo-invalid.l3
-rw-r--r--gas/testsuite/gas/aarch64/etm-wo-invalid.s5
-rw-r--r--gas/testsuite/gas/aarch64/etm-wo.d10
-rw-r--r--gas/testsuite/gas/aarch64/etm-wo.s5
-rw-r--r--gas/testsuite/gas/aarch64/etm.d362
-rw-r--r--gas/testsuite/gas/aarch64/etm.s360
-rw-r--r--gas/testsuite/gas/aarch64/sysreg.d4
-rw-r--r--opcodes/ChangeLog23
-rw-r--r--opcodes/aarch64-opc.c216
16 files changed, 1169 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 6fdabb6..fbd69ca 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,20 +1,34 @@
2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+ * testsuite/gas/aarch64/etm-ro-invalid.d: New test.
+ * testsuite/gas/aarch64/etm-ro-invalid.l: New test.
+ * testsuite/gas/aarch64/etm-ro-invalid.s: New test.
+ * testsuite/gas/aarch64/etm-ro.s: New test.
+ * testsuite/gas/aarch64/etm-wo-invalid.d: New test.
+ * testsuite/gas/aarch64/etm-wo-invalid.l: New test.
+ * testsuite/gas/aarch64/etm-wo-invalid.s: New test.
+ * testsuite/gas/aarch64/etm-wo.s: New test.
+ * testsuite/gas/aarch64/etm.s: New test.
+ * testsuite/gas/aarch64/sysreg.d: system register s2_1_c0_c3_0
+ disassembled now to trcstatr.
+
+2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
* config/tc-aarch64.c: (aarch64_cpus): Add Cortex-X1.
* doc/c-aarch64.texi: Document -mcpu=cortex-x1.
2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
- * testsuite/gas/aarch64/ete.d: New test.
- * testsuite/gas/aarch64/ete.s: New test.
+ * testsuite/gas/aarch64/ete.d: New test.
+ * testsuite/gas/aarch64/ete.s: New test.
2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
- * testsuite/gas/aarch64/trbe-invalid.d: New test.
- * testsuite/gas/aarch64/trbe-invalid.l: New test.
- * testsuite/gas/aarch64/trbe-invalid.s: New test.
- * testsuite/gas/aarch64/trbe.d: New test.
- * testsuite/gas/aarch64/trbe.s: New test.
+ * testsuite/gas/aarch64/trbe-invalid.d: New test.
+ * testsuite/gas/aarch64/trbe-invalid.l: New test.
+ * testsuite/gas/aarch64/trbe-invalid.s: New test.
+ * testsuite/gas/aarch64/trbe.d: New test.
+ * testsuite/gas/aarch64/trbe.s: New test.
2020-09-28 Alex Coplan <alex.coplan@arm.com>
diff --git a/gas/testsuite/gas/aarch64/etm-ro-invalid.d b/gas/testsuite/gas/aarch64/etm-ro-invalid.d
new file mode 100644
index 0000000..c5dd75a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-ro-invalid.d
@@ -0,0 +1,3 @@
+#name: Invalid ETM read-only system registers usage
+#source: etm-ro-invalid.s
+#warning_output: etm-ro-invalid.l
diff --git a/gas/testsuite/gas/aarch64/etm-ro-invalid.l b/gas/testsuite/gas/aarch64/etm-ro-invalid.l
new file mode 100644
index 0000000..19bc324
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-ro-invalid.l
@@ -0,0 +1,37 @@
+.*: Assembler messages:
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcauthstatus,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trccidr0,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trccidr1,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trccidr2,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trccidr3,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcdevaff0,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcdevaff1,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcdevarch,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcdevid,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcdevtype,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr0,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr1,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr2,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr3,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr4,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr5,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr6,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr7,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr8,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr9,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr10,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr11,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr12,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcidr13,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trclsr,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcoslsr,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpdsr,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr0,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr1,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr2,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr3,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr4,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr5,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr6,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcpidr7,x0'
+.*: Warning: specified register cannot be written to at operand 1 -- `msr trcstatr,x0'
diff --git a/gas/testsuite/gas/aarch64/etm-ro-invalid.s b/gas/testsuite/gas/aarch64/etm-ro-invalid.s
new file mode 100644
index 0000000..ae7769f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-ro-invalid.s
@@ -0,0 +1,39 @@
+/* ETMv4 system registers */
+
+/* Write from read-only system register. */
+msr trcauthstatus, x0
+msr trccidr0, x0
+msr trccidr1, x0
+msr trccidr2, x0
+msr trccidr3, x0
+msr trcdevaff0, x0
+msr trcdevaff1, x0
+msr trcdevarch, x0
+msr trcdevid, x0
+msr trcdevtype, x0
+msr trcidr0 , x0
+msr trcidr1, x0
+msr trcidr2, x0
+msr trcidr3, x0
+msr trcidr4, x0
+msr trcidr5, x0
+msr trcidr6, x0
+msr trcidr7, x0
+msr trcidr8, x0
+msr trcidr9, x0
+msr trcidr10, x0
+msr trcidr11, x0
+msr trcidr12, x0
+msr trcidr13, x0
+msr trclsr, x0
+msr trcoslsr, x0
+msr trcpdsr, x0
+msr trcpidr0, x0
+msr trcpidr1, x0
+msr trcpidr2, x0
+msr trcpidr3, x0
+msr trcpidr4, x0
+msr trcpidr5, x0
+msr trcpidr6, x0
+msr trcpidr7, x0
+msr trcstatr, x0
diff --git a/gas/testsuite/gas/aarch64/etm-ro.d b/gas/testsuite/gas/aarch64/etm-ro.d
new file mode 100644
index 0000000..9fd51b6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-ro.d
@@ -0,0 +1,44 @@
+#name: ETM read-only system registers
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]+: d5317ec0 mrs x0, trcauthstatus
+[^:]+: d5317ce0 mrs x0, trccidr0
+[^:]+: d5317de0 mrs x0, trccidr1
+[^:]+: d5317ee0 mrs x0, trccidr2
+[^:]+: d5317fe0 mrs x0, trccidr3
+[^:]+: d5317ac0 mrs x0, trcdevaff0
+[^:]+: d5317bc0 mrs x0, trcdevaff1
+[^:]+: d5317fc0 mrs x0, trcdevarch
+[^:]+: d53172e0 mrs x0, trcdevid
+[^:]+: d53173e0 mrs x0, trcdevtype
+[^:]+: d53108e0 mrs x0, trcidr0
+[^:]+: d53109e0 mrs x0, trcidr1
+[^:]+: d5310ae0 mrs x0, trcidr2
+[^:]+: d5310be0 mrs x0, trcidr3
+[^:]+: d5310ce0 mrs x0, trcidr4
+[^:]+: d5310de0 mrs x0, trcidr5
+[^:]+: d5310ee0 mrs x0, trcidr6
+[^:]+: d5310fe0 mrs x0, trcidr7
+[^:]+: d53100c0 mrs x0, trcidr8
+[^:]+: d53101c0 mrs x0, trcidr9
+[^:]+: d53102c0 mrs x0, trcidr10
+[^:]+: d53103c0 mrs x0, trcidr11
+[^:]+: d53104c0 mrs x0, trcidr12
+[^:]+: d53105c0 mrs x0, trcidr13
+[^:]+: d5317dc0 mrs x0, trclsr
+[^:]+: d5311180 mrs x0, trcoslsr
+[^:]+: d5311580 mrs x0, trcpdsr
+[^:]+: d53178e0 mrs x0, trcpidr0
+[^:]+: d53179e0 mrs x0, trcpidr1
+[^:]+: d5317ae0 mrs x0, trcpidr2
+[^:]+: d5317be0 mrs x0, trcpidr3
+[^:]+: d53174e0 mrs x0, trcpidr4
+[^:]+: d53175e0 mrs x0, trcpidr5
+[^:]+: d53176e0 mrs x0, trcpidr6
+[^:]+: d53177e0 mrs x0, trcpidr7
+[^:]+: d5310300 mrs x0, trcstatr
diff --git a/gas/testsuite/gas/aarch64/etm-ro.s b/gas/testsuite/gas/aarch64/etm-ro.s
new file mode 100644
index 0000000..0d4507f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-ro.s
@@ -0,0 +1,39 @@
+/* ETMv4 system registers */
+
+/* Read from read-only system register. */
+mrs x0, trcauthstatus
+mrs x0, trccidr0
+mrs x0, trccidr1
+mrs x0, trccidr2
+mrs x0, trccidr3
+mrs x0, trcdevaff0
+mrs x0, trcdevaff1
+mrs x0, trcdevarch
+mrs x0, trcdevid
+mrs x0, trcdevtype
+mrs x0, trcidr0
+mrs x0, trcidr1
+mrs x0, trcidr2
+mrs x0, trcidr3
+mrs x0, trcidr4
+mrs x0, trcidr5
+mrs x0, trcidr6
+mrs x0, trcidr7
+mrs x0, trcidr8
+mrs x0, trcidr9
+mrs x0, trcidr10
+mrs x0, trcidr11
+mrs x0, trcidr12
+mrs x0, trcidr13
+mrs x0, trclsr
+mrs x0, trcoslsr
+mrs x0, trcpdsr
+mrs x0, trcpidr0
+mrs x0, trcpidr1
+mrs x0, trcpidr2
+mrs x0, trcpidr3
+mrs x0, trcpidr4
+mrs x0, trcpidr5
+mrs x0, trcpidr6
+mrs x0, trcpidr7
+mrs x0, trcstatr
diff --git a/gas/testsuite/gas/aarch64/etm-wo-invalid.d b/gas/testsuite/gas/aarch64/etm-wo-invalid.d
new file mode 100644
index 0000000..2a3a8fa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-wo-invalid.d
@@ -0,0 +1,3 @@
+#name: Invalid ETM write-only system registers usage
+#source: etm-wo-invalid.s
+#warning_output: etm-wo-invalid.l
diff --git a/gas/testsuite/gas/aarch64/etm-wo-invalid.l b/gas/testsuite/gas/aarch64/etm-wo-invalid.l
new file mode 100644
index 0000000..8364357
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-wo-invalid.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Warning: specified register cannot be read from at operand 2 -- `mrs x0,trclar'
+.*: Warning: specified register cannot be read from at operand 2 -- `mrs x0,trcoslar'
diff --git a/gas/testsuite/gas/aarch64/etm-wo-invalid.s b/gas/testsuite/gas/aarch64/etm-wo-invalid.s
new file mode 100644
index 0000000..bbf28bc
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-wo-invalid.s
@@ -0,0 +1,5 @@
+/* ETMv4 system registers */
+
+/* Read from write-only system register. */
+mrs x0, trclar
+mrs x0, trcoslar
diff --git a/gas/testsuite/gas/aarch64/etm-wo.d b/gas/testsuite/gas/aarch64/etm-wo.d
new file mode 100644
index 0000000..3caac1d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-wo.d
@@ -0,0 +1,10 @@
+#name: ETM write-only system registers
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]+: d5117cc0 msr trclar, x0
+[^:]+: d5111080 msr trcoslar, x0
diff --git a/gas/testsuite/gas/aarch64/etm-wo.s b/gas/testsuite/gas/aarch64/etm-wo.s
new file mode 100644
index 0000000..8a8afcd
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm-wo.s
@@ -0,0 +1,5 @@
+/* ETMv4 system registers */
+
+/* Write to write-only system register. */
+msr trclar, x0
+msr trcoslar, x0
diff --git a/gas/testsuite/gas/aarch64/etm.d b/gas/testsuite/gas/aarch64/etm.d
new file mode 100644
index 0000000..4472b2f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm.d
@@ -0,0 +1,362 @@
+#name: ETM System registers
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]+: d5312040 mrs x0, trcacatr0
+[^:]+: d5312240 mrs x0, trcacatr1
+[^:]+: d5312440 mrs x0, trcacatr2
+[^:]+: d5312640 mrs x0, trcacatr3
+[^:]+: d5312840 mrs x0, trcacatr4
+[^:]+: d5312a40 mrs x0, trcacatr5
+[^:]+: d5312c40 mrs x0, trcacatr6
+[^:]+: d5312e40 mrs x0, trcacatr7
+[^:]+: d5312060 mrs x0, trcacatr8
+[^:]+: d5312260 mrs x0, trcacatr9
+[^:]+: d5312460 mrs x0, trcacatr10
+[^:]+: d5312660 mrs x0, trcacatr11
+[^:]+: d5312860 mrs x0, trcacatr12
+[^:]+: d5312a60 mrs x0, trcacatr13
+[^:]+: d5312c60 mrs x0, trcacatr14
+[^:]+: d5312e60 mrs x0, trcacatr15
+[^:]+: d5312000 mrs x0, trcacvr0
+[^:]+: d5312200 mrs x0, trcacvr1
+[^:]+: d5312400 mrs x0, trcacvr2
+[^:]+: d5312600 mrs x0, trcacvr3
+[^:]+: d5312800 mrs x0, trcacvr4
+[^:]+: d5312a00 mrs x0, trcacvr5
+[^:]+: d5312c00 mrs x0, trcacvr6
+[^:]+: d5312e00 mrs x0, trcacvr7
+[^:]+: d5312020 mrs x0, trcacvr8
+[^:]+: d5312220 mrs x0, trcacvr9
+[^:]+: d5312420 mrs x0, trcacvr10
+[^:]+: d5312620 mrs x0, trcacvr11
+[^:]+: d5312820 mrs x0, trcacvr12
+[^:]+: d5312a20 mrs x0, trcacvr13
+[^:]+: d5312c20 mrs x0, trcacvr14
+[^:]+: d5312e20 mrs x0, trcacvr15
+[^:]+: d5310600 mrs x0, trcauxctlr
+[^:]+: d5310f00 mrs x0, trcbbctlr
+[^:]+: d5310e00 mrs x0, trcccctlr
+[^:]+: d5313040 mrs x0, trccidcctlr0
+[^:]+: d5313140 mrs x0, trccidcctlr1
+[^:]+: d5313000 mrs x0, trccidcvr0
+[^:]+: d5313200 mrs x0, trccidcvr1
+[^:]+: d5313400 mrs x0, trccidcvr2
+[^:]+: d5313600 mrs x0, trccidcvr3
+[^:]+: d5313800 mrs x0, trccidcvr4
+[^:]+: d5313a00 mrs x0, trccidcvr5
+[^:]+: d5313c00 mrs x0, trccidcvr6
+[^:]+: d5313e00 mrs x0, trccidcvr7
+[^:]+: d53179c0 mrs x0, trcclaimclr
+[^:]+: d53178c0 mrs x0, trcclaimset
+[^:]+: d53104a0 mrs x0, trccntctlr0
+[^:]+: d53105a0 mrs x0, trccntctlr1
+[^:]+: d53106a0 mrs x0, trccntctlr2
+[^:]+: d53107a0 mrs x0, trccntctlr3
+[^:]+: d53100a0 mrs x0, trccntrldvr0
+[^:]+: d53101a0 mrs x0, trccntrldvr1
+[^:]+: d53102a0 mrs x0, trccntrldvr2
+[^:]+: d53103a0 mrs x0, trccntrldvr3
+[^:]+: d53108a0 mrs x0, trccntvr0
+[^:]+: d53109a0 mrs x0, trccntvr1
+[^:]+: d5310aa0 mrs x0, trccntvr2
+[^:]+: d5310ba0 mrs x0, trccntvr3
+[^:]+: d5310400 mrs x0, trcconfigr
+[^:]+: d53120c0 mrs x0, trcdvcmr0
+[^:]+: d53124c0 mrs x0, trcdvcmr1
+[^:]+: d53128c0 mrs x0, trcdvcmr2
+[^:]+: d5312cc0 mrs x0, trcdvcmr3
+[^:]+: d53120e0 mrs x0, trcdvcmr4
+[^:]+: d53124e0 mrs x0, trcdvcmr5
+[^:]+: d53128e0 mrs x0, trcdvcmr6
+[^:]+: d5312ce0 mrs x0, trcdvcmr7
+[^:]+: d5312080 mrs x0, trcdvcvr0
+[^:]+: d5312480 mrs x0, trcdvcvr1
+[^:]+: d5312880 mrs x0, trcdvcvr2
+[^:]+: d5312c80 mrs x0, trcdvcvr3
+[^:]+: d53120a0 mrs x0, trcdvcvr4
+[^:]+: d53124a0 mrs x0, trcdvcvr5
+[^:]+: d53128a0 mrs x0, trcdvcvr6
+[^:]+: d5312ca0 mrs x0, trcdvcvr7
+[^:]+: d5310800 mrs x0, trceventctl0r
+[^:]+: d5310900 mrs x0, trceventctl1r
+[^:]+: d5310880 mrs x0, trcextinselr0
+[^:]+: d5310880 mrs x0, trcextinselr0
+[^:]+: d5310980 mrs x0, trcextinselr1
+[^:]+: d5310a80 mrs x0, trcextinselr2
+[^:]+: d5310b80 mrs x0, trcextinselr3
+[^:]+: d53100e0 mrs x0, trcimspec0
+[^:]+: d53100e0 mrs x0, trcimspec0
+[^:]+: d53101e0 mrs x0, trcimspec1
+[^:]+: d53102e0 mrs x0, trcimspec2
+[^:]+: d53103e0 mrs x0, trcimspec3
+[^:]+: d53104e0 mrs x0, trcimspec4
+[^:]+: d53105e0 mrs x0, trcimspec5
+[^:]+: d53106e0 mrs x0, trcimspec6
+[^:]+: d53107e0 mrs x0, trcimspec7
+[^:]+: d5317080 mrs x0, trcitctrl
+[^:]+: d5311480 mrs x0, trcpdcr
+[^:]+: d5310100 mrs x0, trcprgctlr
+[^:]+: d5310200 mrs x0, trcprocselr
+[^:]+: d5310120 mrs x0, trcqctlr
+[^:]+: d5311200 mrs x0, trcrsctlr2
+[^:]+: d5311300 mrs x0, trcrsctlr3
+[^:]+: d5311400 mrs x0, trcrsctlr4
+[^:]+: d5311500 mrs x0, trcrsctlr5
+[^:]+: d5311600 mrs x0, trcrsctlr6
+[^:]+: d5311700 mrs x0, trcrsctlr7
+[^:]+: d5311800 mrs x0, trcrsctlr8
+[^:]+: d5311900 mrs x0, trcrsctlr9
+[^:]+: d5311a00 mrs x0, trcrsctlr10
+[^:]+: d5311b00 mrs x0, trcrsctlr11
+[^:]+: d5311c00 mrs x0, trcrsctlr12
+[^:]+: d5311d00 mrs x0, trcrsctlr13
+[^:]+: d5311e00 mrs x0, trcrsctlr14
+[^:]+: d5311f00 mrs x0, trcrsctlr15
+[^:]+: d5311020 mrs x0, trcrsctlr16
+[^:]+: d5311120 mrs x0, trcrsctlr17
+[^:]+: d5311220 mrs x0, trcrsctlr18
+[^:]+: d5311320 mrs x0, trcrsctlr19
+[^:]+: d5311420 mrs x0, trcrsctlr20
+[^:]+: d5311520 mrs x0, trcrsctlr21
+[^:]+: d5311620 mrs x0, trcrsctlr22
+[^:]+: d5311720 mrs x0, trcrsctlr23
+[^:]+: d5311820 mrs x0, trcrsctlr24
+[^:]+: d5311920 mrs x0, trcrsctlr25
+[^:]+: d5311a20 mrs x0, trcrsctlr26
+[^:]+: d5311b20 mrs x0, trcrsctlr27
+[^:]+: d5311c20 mrs x0, trcrsctlr28
+[^:]+: d5311d20 mrs x0, trcrsctlr29
+[^:]+: d5311e20 mrs x0, trcrsctlr30
+[^:]+: d5311f20 mrs x0, trcrsctlr31
+[^:]+: d5310080 mrs x0, trcseqevr0
+[^:]+: d5310180 mrs x0, trcseqevr1
+[^:]+: d5310280 mrs x0, trcseqevr2
+[^:]+: d5310680 mrs x0, trcseqrstevr
+[^:]+: d5310780 mrs x0, trcseqstr
+[^:]+: d5311040 mrs x0, trcssccr0
+[^:]+: d5311140 mrs x0, trcssccr1
+[^:]+: d5311240 mrs x0, trcssccr2
+[^:]+: d5311340 mrs x0, trcssccr3
+[^:]+: d5311440 mrs x0, trcssccr4
+[^:]+: d5311540 mrs x0, trcssccr5
+[^:]+: d5311640 mrs x0, trcssccr6
+[^:]+: d5311740 mrs x0, trcssccr7
+[^:]+: d5311840 mrs x0, trcsscsr0
+[^:]+: d5311940 mrs x0, trcsscsr1
+[^:]+: d5311a40 mrs x0, trcsscsr2
+[^:]+: d5311b40 mrs x0, trcsscsr3
+[^:]+: d5311c40 mrs x0, trcsscsr4
+[^:]+: d5311d40 mrs x0, trcsscsr5
+[^:]+: d5311e40 mrs x0, trcsscsr6
+[^:]+: d5311f40 mrs x0, trcsscsr7
+[^:]+: d5311060 mrs x0, trcsspcicr0
+[^:]+: d5311160 mrs x0, trcsspcicr1
+[^:]+: d5311260 mrs x0, trcsspcicr2
+[^:]+: d5311360 mrs x0, trcsspcicr3
+[^:]+: d5311460 mrs x0, trcsspcicr4
+[^:]+: d5311560 mrs x0, trcsspcicr5
+[^:]+: d5311660 mrs x0, trcsspcicr6
+[^:]+: d5311760 mrs x0, trcsspcicr7
+[^:]+: d5310b00 mrs x0, trcstallctlr
+[^:]+: d5310d00 mrs x0, trcsyncpr
+[^:]+: d5310020 mrs x0, trctraceidr
+[^:]+: d5310c00 mrs x0, trctsctlr
+[^:]+: d5310a40 mrs x0, trcvdarcctlr
+[^:]+: d5310840 mrs x0, trcvdctlr
+[^:]+: d5310940 mrs x0, trcvdsacctlr
+[^:]+: d5310040 mrs x0, trcvictlr
+[^:]+: d5310140 mrs x0, trcviiectlr
+[^:]+: d5310340 mrs x0, trcvipcssctlr
+[^:]+: d5310240 mrs x0, trcvissctlr
+[^:]+: d5313240 mrs x0, trcvmidcctlr0
+[^:]+: d5313340 mrs x0, trcvmidcctlr1
+[^:]+: d5313020 mrs x0, trcvmidcvr0
+[^:]+: d5313220 mrs x0, trcvmidcvr1
+[^:]+: d5313420 mrs x0, trcvmidcvr2
+[^:]+: d5313620 mrs x0, trcvmidcvr3
+[^:]+: d5313820 mrs x0, trcvmidcvr4
+[^:]+: d5313a20 mrs x0, trcvmidcvr5
+[^:]+: d5313c20 mrs x0, trcvmidcvr6
+[^:]+: d5313e20 mrs x0, trcvmidcvr7
+[^:]+: d5112040 msr trcacatr0, x0
+[^:]+: d5112240 msr trcacatr1, x0
+[^:]+: d5112440 msr trcacatr2, x0
+[^:]+: d5112640 msr trcacatr3, x0
+[^:]+: d5112840 msr trcacatr4, x0
+[^:]+: d5112a40 msr trcacatr5, x0
+[^:]+: d5112c40 msr trcacatr6, x0
+[^:]+: d5112e40 msr trcacatr7, x0
+[^:]+: d5112060 msr trcacatr8, x0
+[^:]+: d5112260 msr trcacatr9, x0
+[^:]+: d5112460 msr trcacatr10, x0
+[^:]+: d5112660 msr trcacatr11, x0
+[^:]+: d5112860 msr trcacatr12, x0
+[^:]+: d5112a60 msr trcacatr13, x0
+[^:]+: d5112c60 msr trcacatr14, x0
+[^:]+: d5112e60 msr trcacatr15, x0
+[^:]+: d5112000 msr trcacvr0, x0
+[^:]+: d5112200 msr trcacvr1, x0
+[^:]+: d5112400 msr trcacvr2, x0
+[^:]+: d5112600 msr trcacvr3, x0
+[^:]+: d5112800 msr trcacvr4, x0
+[^:]+: d5112a00 msr trcacvr5, x0
+[^:]+: d5112c00 msr trcacvr6, x0
+[^:]+: d5112e00 msr trcacvr7, x0
+[^:]+: d5112020 msr trcacvr8, x0
+[^:]+: d5112220 msr trcacvr9, x0
+[^:]+: d5112420 msr trcacvr10, x0
+[^:]+: d5112620 msr trcacvr11, x0
+[^:]+: d5112820 msr trcacvr12, x0
+[^:]+: d5112a20 msr trcacvr13, x0
+[^:]+: d5112c20 msr trcacvr14, x0
+[^:]+: d5112e20 msr trcacvr15, x0
+[^:]+: d5110600 msr trcauxctlr, x0
+[^:]+: d5110f00 msr trcbbctlr, x0
+[^:]+: d5110e00 msr trcccctlr, x0
+[^:]+: d5113040 msr trccidcctlr0, x0
+[^:]+: d5113140 msr trccidcctlr1, x0
+[^:]+: d5113000 msr trccidcvr0, x0
+[^:]+: d5113200 msr trccidcvr1, x0
+[^:]+: d5113400 msr trccidcvr2, x0
+[^:]+: d5113600 msr trccidcvr3, x0
+[^:]+: d5113800 msr trccidcvr4, x0
+[^:]+: d5113a00 msr trccidcvr5, x0
+[^:]+: d5113c00 msr trccidcvr6, x0
+[^:]+: d5113e00 msr trccidcvr7, x0
+[^:]+: d51179c0 msr trcclaimclr, x0
+[^:]+: d51178c0 msr trcclaimset, x0
+[^:]+: d51104a0 msr trccntctlr0, x0
+[^:]+: d51105a0 msr trccntctlr1, x0
+[^:]+: d51106a0 msr trccntctlr2, x0
+[^:]+: d51107a0 msr trccntctlr3, x0
+[^:]+: d51100a0 msr trccntrldvr0, x0
+[^:]+: d51101a0 msr trccntrldvr1, x0
+[^:]+: d51102a0 msr trccntrldvr2, x0
+[^:]+: d51103a0 msr trccntrldvr3, x0
+[^:]+: d51108a0 msr trccntvr0, x0
+[^:]+: d51109a0 msr trccntvr1, x0
+[^:]+: d5110aa0 msr trccntvr2, x0
+[^:]+: d5110ba0 msr trccntvr3, x0
+[^:]+: d5110400 msr trcconfigr, x0
+[^:]+: d51120c0 msr trcdvcmr0, x0
+[^:]+: d51124c0 msr trcdvcmr1, x0
+[^:]+: d51128c0 msr trcdvcmr2, x0
+[^:]+: d5112cc0 msr trcdvcmr3, x0
+[^:]+: d51120e0 msr trcdvcmr4, x0
+[^:]+: d51124e0 msr trcdvcmr5, x0
+[^:]+: d51128e0 msr trcdvcmr6, x0
+[^:]+: d5112ce0 msr trcdvcmr7, x0
+[^:]+: d5112080 msr trcdvcvr0, x0
+[^:]+: d5112480 msr trcdvcvr1, x0
+[^:]+: d5112880 msr trcdvcvr2, x0
+[^:]+: d5112c80 msr trcdvcvr3, x0
+[^:]+: d51120a0 msr trcdvcvr4, x0
+[^:]+: d51124a0 msr trcdvcvr5, x0
+[^:]+: d51128a0 msr trcdvcvr6, x0
+[^:]+: d5112ca0 msr trcdvcvr7, x0
+[^:]+: d5110800 msr trceventctl0r, x0
+[^:]+: d5110900 msr trceventctl1r, x0
+[^:]+: d5110880 msr trcextinselr0, x0
+[^:]+: d5110880 msr trcextinselr0, x0
+[^:]+: d5110980 msr trcextinselr1, x0
+[^:]+: d5110a80 msr trcextinselr2, x0
+[^:]+: d5110b80 msr trcextinselr3, x0
+[^:]+: d51100e0 msr trcimspec0, x0
+[^:]+: d51100e0 msr trcimspec0, x0
+[^:]+: d51101e0 msr trcimspec1, x0
+[^:]+: d51102e0 msr trcimspec2, x0
+[^:]+: d51103e0 msr trcimspec3, x0
+[^:]+: d51104e0 msr trcimspec4, x0
+[^:]+: d51105e0 msr trcimspec5, x0
+[^:]+: d51106e0 msr trcimspec6, x0
+[^:]+: d51107e0 msr trcimspec7, x0
+[^:]+: d5117080 msr trcitctrl, x0
+[^:]+: d5111480 msr trcpdcr, x0
+[^:]+: d5110100 msr trcprgctlr, x0
+[^:]+: d5110200 msr trcprocselr, x0
+[^:]+: d5110120 msr trcqctlr, x0
+[^:]+: d5111200 msr trcrsctlr2, x0
+[^:]+: d5111300 msr trcrsctlr3, x0
+[^:]+: d5111400 msr trcrsctlr4, x0
+[^:]+: d5111500 msr trcrsctlr5, x0
+[^:]+: d5111600 msr trcrsctlr6, x0
+[^:]+: d5111700 msr trcrsctlr7, x0
+[^:]+: d5111800 msr trcrsctlr8, x0
+[^:]+: d5111900 msr trcrsctlr9, x0
+[^:]+: d5111a00 msr trcrsctlr10, x0
+[^:]+: d5111b00 msr trcrsctlr11, x0
+[^:]+: d5111c00 msr trcrsctlr12, x0
+[^:]+: d5111d00 msr trcrsctlr13, x0
+[^:]+: d5111e00 msr trcrsctlr14, x0
+[^:]+: d5111f00 msr trcrsctlr15, x0
+[^:]+: d5111020 msr trcrsctlr16, x0
+[^:]+: d5111120 msr trcrsctlr17, x0
+[^:]+: d5111220 msr trcrsctlr18, x0
+[^:]+: d5111320 msr trcrsctlr19, x0
+[^:]+: d5111420 msr trcrsctlr20, x0
+[^:]+: d5111520 msr trcrsctlr21, x0
+[^:]+: d5111620 msr trcrsctlr22, x0
+[^:]+: d5111720 msr trcrsctlr23, x0
+[^:]+: d5111820 msr trcrsctlr24, x0
+[^:]+: d5111920 msr trcrsctlr25, x0
+[^:]+: d5111a20 msr trcrsctlr26, x0
+[^:]+: d5111b20 msr trcrsctlr27, x0
+[^:]+: d5111c20 msr trcrsctlr28, x0
+[^:]+: d5111d20 msr trcrsctlr29, x0
+[^:]+: d5111e20 msr trcrsctlr30, x0
+[^:]+: d5111f20 msr trcrsctlr31, x0
+[^:]+: d5110080 msr trcseqevr0, x0
+[^:]+: d5110180 msr trcseqevr1, x0
+[^:]+: d5110280 msr trcseqevr2, x0
+[^:]+: d5110680 msr trcseqrstevr, x0
+[^:]+: d5110780 msr trcseqstr, x0
+[^:]+: d5111040 msr trcssccr0, x0
+[^:]+: d5111140 msr trcssccr1, x0
+[^:]+: d5111240 msr trcssccr2, x0
+[^:]+: d5111340 msr trcssccr3, x0
+[^:]+: d5111440 msr trcssccr4, x0
+[^:]+: d5111540 msr trcssccr5, x0
+[^:]+: d5111640 msr trcssccr6, x0
+[^:]+: d5111740 msr trcssccr7, x0
+[^:]+: d5111840 msr trcsscsr0, x0
+[^:]+: d5111940 msr trcsscsr1, x0
+[^:]+: d5111a40 msr trcsscsr2, x0
+[^:]+: d5111b40 msr trcsscsr3, x0
+[^:]+: d5111c40 msr trcsscsr4, x0
+[^:]+: d5111d40 msr trcsscsr5, x0
+[^:]+: d5111e40 msr trcsscsr6, x0
+[^:]+: d5111f40 msr trcsscsr7, x0
+[^:]+: d5111060 msr trcsspcicr0, x0
+[^:]+: d5111160 msr trcsspcicr1, x0
+[^:]+: d5111260 msr trcsspcicr2, x0
+[^:]+: d5111360 msr trcsspcicr3, x0
+[^:]+: d5111460 msr trcsspcicr4, x0
+[^:]+: d5111560 msr trcsspcicr5, x0
+[^:]+: d5111660 msr trcsspcicr6, x0
+[^:]+: d5111760 msr trcsspcicr7, x0
+[^:]+: d5110b00 msr trcstallctlr, x0
+[^:]+: d5110d00 msr trcsyncpr, x0
+[^:]+: d5110020 msr trctraceidr, x0
+[^:]+: d5110c00 msr trctsctlr, x0
+[^:]+: d5110a40 msr trcvdarcctlr, x0
+[^:]+: d5110840 msr trcvdctlr, x0
+[^:]+: d5110940 msr trcvdsacctlr, x0
+[^:]+: d5110040 msr trcvictlr, x0
+[^:]+: d5110140 msr trcviiectlr, x0
+[^:]+: d5110340 msr trcvipcssctlr, x0
+[^:]+: d5110240 msr trcvissctlr, x0
+[^:]+: d5113240 msr trcvmidcctlr0, x0
+[^:]+: d5113340 msr trcvmidcctlr1, x0
+[^:]+: d5113020 msr trcvmidcvr0, x0
+[^:]+: d5113220 msr trcvmidcvr1, x0
+[^:]+: d5113420 msr trcvmidcvr2, x0
+[^:]+: d5113620 msr trcvmidcvr3, x0
+[^:]+: d5113820 msr trcvmidcvr4, x0
+[^:]+: d5113a20 msr trcvmidcvr5, x0
+[^:]+: d5113c20 msr trcvmidcvr6, x0
+[^:]+: d5113e20 msr trcvmidcvr7, x0
diff --git a/gas/testsuite/gas/aarch64/etm.s b/gas/testsuite/gas/aarch64/etm.s
new file mode 100644
index 0000000..8f1947d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/etm.s
@@ -0,0 +1,360 @@
+/* ETMv4 system registers. */
+
+/* Read from system register. */
+
+mrs x0, trcacatr0
+mrs x0, trcacatr1
+mrs x0, trcacatr2
+mrs x0, trcacatr3
+mrs x0, trcacatr4
+mrs x0, trcacatr5
+mrs x0, trcacatr6
+mrs x0, trcacatr7
+mrs x0, trcacatr8
+mrs x0, trcacatr9
+mrs x0, trcacatr10
+mrs x0, trcacatr11
+mrs x0, trcacatr12
+mrs x0, trcacatr13
+mrs x0, trcacatr14
+mrs x0, trcacatr15
+mrs x0, trcacvr0
+mrs x0, trcacvr1
+mrs x0, trcacvr2
+mrs x0, trcacvr3
+mrs x0, trcacvr4
+mrs x0, trcacvr5
+mrs x0, trcacvr6
+mrs x0, trcacvr7
+mrs x0, trcacvr8
+mrs x0, trcacvr9
+mrs x0, trcacvr10
+mrs x0, trcacvr11
+mrs x0, trcacvr12
+mrs x0, trcacvr13
+mrs x0, trcacvr14
+mrs x0, trcacvr15
+mrs x0, trcauxctlr
+mrs x0, trcbbctlr
+mrs x0, trcccctlr
+mrs x0, trccidcctlr0
+mrs x0, trccidcctlr1
+mrs x0, trccidcvr0
+mrs x0, trccidcvr1
+mrs x0, trccidcvr2
+mrs x0, trccidcvr3
+mrs x0, trccidcvr4
+mrs x0, trccidcvr5
+mrs x0, trccidcvr6
+mrs x0, trccidcvr7
+mrs x0, trcclaimclr
+mrs x0, trcclaimset
+mrs x0, trccntctlr0
+mrs x0, trccntctlr1
+mrs x0, trccntctlr2
+mrs x0, trccntctlr3
+mrs x0, trccntrldvr0
+mrs x0, trccntrldvr1
+mrs x0, trccntrldvr2
+mrs x0, trccntrldvr3
+mrs x0, trccntvr0
+mrs x0, trccntvr1
+mrs x0, trccntvr2
+mrs x0, trccntvr3
+mrs x0, trcconfigr
+mrs x0, trcdvcmr0
+mrs x0, trcdvcmr1
+mrs x0, trcdvcmr2
+mrs x0, trcdvcmr3
+mrs x0, trcdvcmr4
+mrs x0, trcdvcmr5
+mrs x0, trcdvcmr6
+mrs x0, trcdvcmr7
+mrs x0, trcdvcvr0
+mrs x0, trcdvcvr1
+mrs x0, trcdvcvr2
+mrs x0, trcdvcvr3
+mrs x0, trcdvcvr4
+mrs x0, trcdvcvr5
+mrs x0, trcdvcvr6
+mrs x0, trcdvcvr7
+mrs x0, trceventctl0r
+mrs x0, trceventctl1r
+mrs x0, trcextinselr0
+mrs x0, trcextinselr
+mrs x0, trcextinselr1
+mrs x0, trcextinselr2
+mrs x0, trcextinselr3
+mrs x0, trcimspec0
+mrs x0, trcimspec0
+mrs x0, trcimspec1
+mrs x0, trcimspec2
+mrs x0, trcimspec3
+mrs x0, trcimspec4
+mrs x0, trcimspec5
+mrs x0, trcimspec6
+mrs x0, trcimspec7
+mrs x0, trcitctrl
+mrs x0, trcpdcr
+mrs x0, trcprgctlr
+mrs x0, trcprocselr
+mrs x0, trcqctlr
+mrs x0, trcrsctlr2
+mrs x0, trcrsctlr3
+mrs x0, trcrsctlr4
+mrs x0, trcrsctlr5
+mrs x0, trcrsctlr6
+mrs x0, trcrsctlr7
+mrs x0, trcrsctlr8
+mrs x0, trcrsctlr9
+mrs x0, trcrsctlr10
+mrs x0, trcrsctlr11
+mrs x0, trcrsctlr12
+mrs x0, trcrsctlr13
+mrs x0, trcrsctlr14
+mrs x0, trcrsctlr15
+mrs x0, trcrsctlr16
+mrs x0, trcrsctlr17
+mrs x0, trcrsctlr18
+mrs x0, trcrsctlr19
+mrs x0, trcrsctlr20
+mrs x0, trcrsctlr21
+mrs x0, trcrsctlr22
+mrs x0, trcrsctlr23
+mrs x0, trcrsctlr24
+mrs x0, trcrsctlr25
+mrs x0, trcrsctlr26
+mrs x0, trcrsctlr27
+mrs x0, trcrsctlr28
+mrs x0, trcrsctlr29
+mrs x0, trcrsctlr30
+mrs x0, trcrsctlr31
+mrs x0, trcseqevr0
+mrs x0, trcseqevr1
+mrs x0, trcseqevr2
+mrs x0, trcseqrstevr
+mrs x0, trcseqstr
+mrs x0, trcssccr0
+mrs x0, trcssccr1
+mrs x0, trcssccr2
+mrs x0, trcssccr3
+mrs x0, trcssccr4
+mrs x0, trcssccr5
+mrs x0, trcssccr6
+mrs x0, trcssccr7
+mrs x0, trcsscsr0
+mrs x0, trcsscsr1
+mrs x0, trcsscsr2
+mrs x0, trcsscsr3
+mrs x0, trcsscsr4
+mrs x0, trcsscsr5
+mrs x0, trcsscsr6
+mrs x0, trcsscsr7
+mrs x0, trcsspcicr0
+mrs x0, trcsspcicr1
+mrs x0, trcsspcicr2
+mrs x0, trcsspcicr3
+mrs x0, trcsspcicr4
+mrs x0, trcsspcicr5
+mrs x0, trcsspcicr6
+mrs x0, trcsspcicr7
+mrs x0, trcstallctlr
+mrs x0, trcsyncpr
+mrs x0, trctraceidr
+mrs x0, trctsctlr
+mrs x0, trcvdarcctlr
+mrs x0, trcvdctlr
+mrs x0, trcvdsacctlr
+mrs x0, trcvictlr
+mrs x0, trcviiectlr
+mrs x0, trcvipcssctlr
+mrs x0, trcvissctlr
+mrs x0, trcvmidcctlr0
+mrs x0, trcvmidcctlr1
+mrs x0, trcvmidcvr0
+mrs x0, trcvmidcvr1
+mrs x0, trcvmidcvr2
+mrs x0, trcvmidcvr3
+mrs x0, trcvmidcvr4
+mrs x0, trcvmidcvr5
+mrs x0, trcvmidcvr6
+mrs x0, trcvmidcvr7
+
+/* Write to system register. */
+msr trcacatr0, x0
+msr trcacatr1, x0
+msr trcacatr2, x0
+msr trcacatr3, x0
+msr trcacatr4, x0
+msr trcacatr5, x0
+msr trcacatr6, x0
+msr trcacatr7, x0
+msr trcacatr8, x0
+msr trcacatr9, x0
+msr trcacatr10, x0
+msr trcacatr11, x0
+msr trcacatr12, x0
+msr trcacatr13, x0
+msr trcacatr14, x0
+msr trcacatr15, x0
+msr trcacvr0, x0
+msr trcacvr1, x0
+msr trcacvr2, x0
+msr trcacvr3, x0
+msr trcacvr4, x0
+msr trcacvr5, x0
+msr trcacvr6, x0
+msr trcacvr7, x0
+msr trcacvr8, x0
+msr trcacvr9, x0
+msr trcacvr10, x0
+msr trcacvr11, x0
+msr trcacvr12, x0
+msr trcacvr13, x0
+msr trcacvr14, x0
+msr trcacvr15, x0
+msr trcauxctlr, x0
+msr trcbbctlr, x0
+msr trcccctlr, x0
+msr trccidcctlr0, x0
+msr trccidcctlr1, x0
+msr trccidcvr0, x0
+msr trccidcvr1, x0
+msr trccidcvr2, x0
+msr trccidcvr3, x0
+msr trccidcvr4, x0
+msr trccidcvr5, x0
+msr trccidcvr6, x0
+msr trccidcvr7, x0
+msr trcclaimclr, x0
+msr trcclaimset, x0
+msr trccntctlr0, x0
+msr trccntctlr1, x0
+msr trccntctlr2, x0
+msr trccntctlr3, x0
+msr trccntrldvr0, x0
+msr trccntrldvr1, x0
+msr trccntrldvr2, x0
+msr trccntrldvr3, x0
+msr trccntvr0, x0
+msr trccntvr1, x0
+msr trccntvr2, x0
+msr trccntvr3, x0
+msr trcconfigr, x0
+msr trcdvcmr0, x0
+msr trcdvcmr1, x0
+msr trcdvcmr2, x0
+msr trcdvcmr3, x0
+msr trcdvcmr4, x0
+msr trcdvcmr5, x0
+msr trcdvcmr6, x0
+msr trcdvcmr7, x0
+msr trcdvcvr0, x0
+msr trcdvcvr1, x0
+msr trcdvcvr2, x0
+msr trcdvcvr3, x0
+msr trcdvcvr4, x0
+msr trcdvcvr5, x0
+msr trcdvcvr6, x0
+msr trcdvcvr7, x0
+msr trceventctl0r, x0
+msr trceventctl1r, x0
+msr trcextinselr0, x0
+msr trcextinselr, x0
+msr trcextinselr1, x0
+msr trcextinselr2, x0
+msr trcextinselr3, x0
+msr trcimspec0, x0
+msr trcimspec0, x0
+msr trcimspec1, x0
+msr trcimspec2, x0
+msr trcimspec3, x0
+msr trcimspec4, x0
+msr trcimspec5, x0
+msr trcimspec6, x0
+msr trcimspec7, x0
+msr trcitctrl, x0
+msr trcpdcr, x0
+msr trcprgctlr, x0
+msr trcprocselr, x0
+msr trcqctlr, x0
+msr trcrsctlr2, x0
+msr trcrsctlr3, x0
+msr trcrsctlr4, x0
+msr trcrsctlr5, x0
+msr trcrsctlr6, x0
+msr trcrsctlr7, x0
+msr trcrsctlr8, x0
+msr trcrsctlr9, x0
+msr trcrsctlr10, x0
+msr trcrsctlr11, x0
+msr trcrsctlr12, x0
+msr trcrsctlr13, x0
+msr trcrsctlr14, x0
+msr trcrsctlr15, x0
+msr trcrsctlr16, x0
+msr trcrsctlr17, x0
+msr trcrsctlr18, x0
+msr trcrsctlr19, x0
+msr trcrsctlr20, x0
+msr trcrsctlr21, x0
+msr trcrsctlr22, x0
+msr trcrsctlr23, x0
+msr trcrsctlr24, x0
+msr trcrsctlr25, x0
+msr trcrsctlr26, x0
+msr trcrsctlr27, x0
+msr trcrsctlr28, x0
+msr trcrsctlr29, x0
+msr trcrsctlr30, x0
+msr trcrsctlr31, x0
+msr trcseqevr0, x0
+msr trcseqevr1, x0
+msr trcseqevr2, x0
+msr trcseqrstevr, x0
+msr trcseqstr, x0
+msr trcssccr0, x0
+msr trcssccr1, x0
+msr trcssccr2, x0
+msr trcssccr3, x0
+msr trcssccr4, x0
+msr trcssccr5, x0
+msr trcssccr6, x0
+msr trcssccr7, x0
+msr trcsscsr0, x0
+msr trcsscsr1, x0
+msr trcsscsr2, x0
+msr trcsscsr3, x0
+msr trcsscsr4, x0
+msr trcsscsr5, x0
+msr trcsscsr6, x0
+msr trcsscsr7, x0
+msr trcsspcicr0, x0
+msr trcsspcicr1, x0
+msr trcsspcicr2, x0
+msr trcsspcicr3, x0
+msr trcsspcicr4, x0
+msr trcsspcicr5, x0
+msr trcsspcicr6, x0
+msr trcsspcicr7, x0
+msr trcstallctlr, x0
+msr trcsyncpr, x0
+msr trctraceidr, x0
+msr trctsctlr, x0
+msr trcvdarcctlr, x0
+msr trcvdctlr, x0
+msr trcvdsacctlr, x0
+msr trcvictlr, x0
+msr trcviiectlr, x0
+msr trcvipcssctlr, x0
+msr trcvissctlr, x0
+msr trcvmidcctlr0, x0
+msr trcvmidcctlr1, x0
+msr trcvmidcvr0, x0
+msr trcvmidcvr1, x0
+msr trcvmidcvr2, x0
+msr trcvmidcvr3, x0
+msr trcvmidcvr4, x0
+msr trcvmidcvr5, x0
+msr trcvmidcvr6, x0
+msr trcvmidcvr7, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg.d b/gas/testsuite/gas/aarch64/sysreg.d
index d4f5402..35b829e 100644
--- a/gas/testsuite/gas/aarch64/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg.d
@@ -27,5 +27,5 @@ Disassembly of section \.text:
4c: d538cc00 mrs x0, s3_0_c12_c12_0
50: d5384600 mrs x0, s3_0_c4_c6_0
54: d5184600 msr s3_0_c4_c6_0, x0
- 58: d5310300 mrs x0, s2_1_c0_c3_0
- 5c: d5110300 msr s2_1_c0_c3_0, x0
+ 58: d5310300 mrs x0, trcstatr
+ 5c: d5110300 msr trcstatr, x0
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index e9dfb78..c57c0b1 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,11 +1,28 @@
2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
- * aarch64-opc.c: Add ETE system registers TRCEXTINSELR<0-3> and TRCRSR.
+ * aarch64-opc.c: Added ETMv4 system registers TRCACATRn, TRCACVRn,
+ TRCAUTHSTATUS, TRCAUXCTLR, TRCBBCTLR, TRCCCCTLR, TRCCIDCCTLR0, TRCCIDCCTLR1,
+ TRCCIDCVRn, TRCCIDR0, TRCCIDR1, TRCCIDR2, TRCCIDR3, TRCCLAIMCLR, TRCCLAIMSET,
+ TRCCNTCTLRn, TRCCNTRLDVRn, TRCCNTVRn, TRCCONFIGR, TRCDEVAFF0, TRCDEVAFF1,
+ TRCDEVARCH, TRCDEVID, TRCDEVTYPE, TRCDVCMRn, TRCDVCVRn, TRCEVENTCTL0R,
+ TRCEVENTCTL1R, TRCEXTINSELR, TRCIDR0, TRCIDR1, TRCIDR2, TRCIDR3, TRCIDR4,
+ TRCIDR5, TRCIDR6, TRCIDR7, TRCIDR8, TRCIDR9, TRCIDR10, TRCIDR11, TRCIDR12,
+ TRCIDR13, TRCIMSPEC0, TRCIMSPECn, TRCITCTRL, TRCLAR WOTRCLSR, TRCOSLAR
+ WOTRCOSLSR, TRCPDCR, TRCPDSR, TRCPIDR0, TRCPIDR1, TRCPIDR2, TRCPIDR3,
+ TRCPIDR4, TRCPIDR[5,6,7], TRCPRGCTLR, TRCP,CSELR, TRCQCTLR, TRCRSCTLRn,
+ TRCSEQEVRn, TRCSEQRSTEVR, TRCSEQSTR, TRCSSCCRn, TRCSSCSRn, TRCSSPCICRn,
+ TRCSTALLCTLR, TRCSTATR, TRCSYNCPR, TRCTRACEIDR, TRCTSCTLR, TRCVDARCCTLR,
+ TRCVDCTLR, TRCVDSACCTLR, TRCVICTLR, TRCVIIECTLR, TRCVIPCSSCTLR, TRCVISSCTLR,
+ TRCVMIDCCTLR0, TRCVMIDCCTLR1 and TRCVMIDCVRn.
2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
- * aarch64-opc.c: Add TRBE system registers TRBIDR_EL1 , TRBBASER_EL1 ,
- TRBLIMITR_EL1 , TRBMAR_EL1 , TRBPTR_EL1, TRBSR_EL1 and TRBTRG_EL1.
+ * aarch64-opc.c: Add ETE system registers TRCEXTINSELR<0-3> and TRCRSR.
+
+2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ * aarch64-opc.c: Add TRBE system registers TRBIDR_EL1 , TRBBASER_EL1 ,
+ TRBLIMITR_EL1 , TRBMAR_EL1 , TRBPTR_EL1, TRBSR_EL1 and TRBTRG_EL1.
2020-09-26 Alan Modra <amodra@gmail.com>
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index 83afb1f..5c8d8ec 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -4325,6 +4325,222 @@ const aarch64_sys_reg aarch64_sys_regs [] =
SR_CORE ("trcextinselr3", CPENC (2,1,C0,C11,4), 0),
SR_CORE ("trcrsr", CPENC (2,1,C0,C10,0), 0),
+ SR_CORE ("trcauthstatus", CPENC (2,1,C7,C14,6), F_REG_READ),
+ SR_CORE ("trccidr0", CPENC (2,1,C7,C12,7), F_REG_READ),
+ SR_CORE ("trccidr1", CPENC (2,1,C7,C13,7), F_REG_READ),
+ SR_CORE ("trccidr2", CPENC (2,1,C7,C14,7), F_REG_READ),
+ SR_CORE ("trccidr3", CPENC (2,1,C7,C15,7), F_REG_READ),
+ SR_CORE ("trcdevaff0", CPENC (2,1,C7,C10,6), F_REG_READ),
+ SR_CORE ("trcdevaff1", CPENC (2,1,C7,C11,6), F_REG_READ),
+ SR_CORE ("trcdevarch", CPENC (2,1,C7,C15,6), F_REG_READ),
+ SR_CORE ("trcdevid", CPENC (2,1,C7,C2,7), F_REG_READ),
+ SR_CORE ("trcdevtype", CPENC (2,1,C7,C3,7), F_REG_READ),
+ SR_CORE ("trcidr0", CPENC (2,1,C0,C8,7), F_REG_READ),
+ SR_CORE ("trcidr1", CPENC (2,1,C0,C9,7), F_REG_READ),
+ SR_CORE ("trcidr2", CPENC (2,1,C0,C10,7), F_REG_READ),
+ SR_CORE ("trcidr3", CPENC (2,1,C0,C11,7), F_REG_READ),
+ SR_CORE ("trcidr4", CPENC (2,1,C0,C12,7), F_REG_READ),
+ SR_CORE ("trcidr5", CPENC (2,1,C0,C13,7), F_REG_READ),
+ SR_CORE ("trcidr6", CPENC (2,1,C0,C14,7), F_REG_READ),
+ SR_CORE ("trcidr7", CPENC (2,1,C0,C15,7), F_REG_READ),
+ SR_CORE ("trcidr8", CPENC (2,1,C0,C0,6), F_REG_READ),
+ SR_CORE ("trcidr9", CPENC (2,1,C0,C1,6), F_REG_READ),
+ SR_CORE ("trcidr10", CPENC (2,1,C0,C2,6), F_REG_READ),
+ SR_CORE ("trcidr11", CPENC (2,1,C0,C3,6), F_REG_READ),
+ SR_CORE ("trcidr12", CPENC (2,1,C0,C4,6), F_REG_READ),
+ SR_CORE ("trcidr13", CPENC (2,1,C0,C5,6), F_REG_READ),
+ SR_CORE ("trclsr", CPENC (2,1,C7,C13,6), F_REG_READ),
+ SR_CORE ("trcoslsr", CPENC (2,1,C1,C1,4), F_REG_READ),
+ SR_CORE ("trcpdsr", CPENC (2,1,C1,C5,4), F_REG_READ),
+ SR_CORE ("trcpidr0", CPENC (2,1,C7,C8,7), F_REG_READ),
+ SR_CORE ("trcpidr1", CPENC (2,1,C7,C9,7), F_REG_READ),
+ SR_CORE ("trcpidr2", CPENC (2,1,C7,C10,7), F_REG_READ),
+ SR_CORE ("trcpidr3", CPENC (2,1,C7,C11,7), F_REG_READ),
+ SR_CORE ("trcpidr4", CPENC (2,1,C7,C4,7), F_REG_READ),
+ SR_CORE ("trcpidr5", CPENC (2,1,C7,C5,7), F_REG_READ),
+ SR_CORE ("trcpidr6", CPENC (2,1,C7,C6,7), F_REG_READ),
+ SR_CORE ("trcpidr7", CPENC (2,1,C7,C7,7), F_REG_READ),
+ SR_CORE ("trcstatr", CPENC (2,1,C0,C3,0), F_REG_READ),
+ SR_CORE ("trcacatr0", CPENC (2,1,C2,C0,2), 0),
+ SR_CORE ("trcacatr1", CPENC (2,1,C2,C2,2), 0),
+ SR_CORE ("trcacatr2", CPENC (2,1,C2,C4,2), 0),
+ SR_CORE ("trcacatr3", CPENC (2,1,C2,C6,2), 0),
+ SR_CORE ("trcacatr4", CPENC (2,1,C2,C8,2), 0),
+ SR_CORE ("trcacatr5", CPENC (2,1,C2,C10,2), 0),
+ SR_CORE ("trcacatr6", CPENC (2,1,C2,C12,2), 0),
+ SR_CORE ("trcacatr7", CPENC (2,1,C2,C14,2), 0),
+ SR_CORE ("trcacatr8", CPENC (2,1,C2,C0,3), 0),
+ SR_CORE ("trcacatr9", CPENC (2,1,C2,C2,3), 0),
+ SR_CORE ("trcacatr10", CPENC (2,1,C2,C4,3), 0),
+ SR_CORE ("trcacatr11", CPENC (2,1,C2,C6,3), 0),
+ SR_CORE ("trcacatr12", CPENC (2,1,C2,C8,3), 0),
+ SR_CORE ("trcacatr13", CPENC (2,1,C2,C10,3), 0),
+ SR_CORE ("trcacatr14", CPENC (2,1,C2,C12,3), 0),
+ SR_CORE ("trcacatr15", CPENC (2,1,C2,C14,3), 0),
+ SR_CORE ("trcacvr0", CPENC (2,1,C2,C0,0), 0),
+ SR_CORE ("trcacvr1", CPENC (2,1,C2,C2,0), 0),
+ SR_CORE ("trcacvr2", CPENC (2,1,C2,C4,0), 0),
+ SR_CORE ("trcacvr3", CPENC (2,1,C2,C6,0), 0),
+ SR_CORE ("trcacvr4", CPENC (2,1,C2,C8,0), 0),
+ SR_CORE ("trcacvr5", CPENC (2,1,C2,C10,0), 0),
+ SR_CORE ("trcacvr6", CPENC (2,1,C2,C12,0), 0),
+ SR_CORE ("trcacvr7", CPENC (2,1,C2,C14,0), 0),
+ SR_CORE ("trcacvr8", CPENC (2,1,C2,C0,1), 0),
+ SR_CORE ("trcacvr9", CPENC (2,1,C2,C2,1), 0),
+ SR_CORE ("trcacvr10", CPENC (2,1,C2,C4,1), 0),
+ SR_CORE ("trcacvr11", CPENC (2,1,C2,C6,1), 0),
+ SR_CORE ("trcacvr12", CPENC (2,1,C2,C8,1), 0),
+ SR_CORE ("trcacvr13", CPENC (2,1,C2,C10,1), 0),
+ SR_CORE ("trcacvr14", CPENC (2,1,C2,C12,1), 0),
+ SR_CORE ("trcacvr15", CPENC (2,1,C2,C14,1), 0),
+ SR_CORE ("trcauxctlr", CPENC (2,1,C0,C6,0), 0),
+ SR_CORE ("trcbbctlr", CPENC (2,1,C0,C15,0), 0),
+ SR_CORE ("trcccctlr", CPENC (2,1,C0,C14,0), 0),
+ SR_CORE ("trccidcctlr0", CPENC (2,1,C3,C0,2), 0),
+ SR_CORE ("trccidcctlr1", CPENC (2,1,C3,C1,2), 0),
+ SR_CORE ("trccidcvr0", CPENC (2,1,C3,C0,0), 0),
+ SR_CORE ("trccidcvr1", CPENC (2,1,C3,C2,0), 0),
+ SR_CORE ("trccidcvr2", CPENC (2,1,C3,C4,0), 0),
+ SR_CORE ("trccidcvr3", CPENC (2,1,C3,C6,0), 0),
+ SR_CORE ("trccidcvr4", CPENC (2,1,C3,C8,0), 0),
+ SR_CORE ("trccidcvr5", CPENC (2,1,C3,C10,0), 0),
+ SR_CORE ("trccidcvr6", CPENC (2,1,C3,C12,0), 0),
+ SR_CORE ("trccidcvr7", CPENC (2,1,C3,C14,0), 0),
+ SR_CORE ("trcclaimclr", CPENC (2,1,C7,C9,6), 0),
+ SR_CORE ("trcclaimset", CPENC (2,1,C7,C8,6), 0),
+ SR_CORE ("trccntctlr0", CPENC (2,1,C0,C4,5), 0),
+ SR_CORE ("trccntctlr1", CPENC (2,1,C0,C5,5), 0),
+ SR_CORE ("trccntctlr2", CPENC (2,1,C0,C6,5), 0),
+ SR_CORE ("trccntctlr3", CPENC (2,1,C0,C7,5), 0),
+ SR_CORE ("trccntrldvr0", CPENC (2,1,C0,C0,5), 0),
+ SR_CORE ("trccntrldvr1", CPENC (2,1,C0,C1,5), 0),
+ SR_CORE ("trccntrldvr2", CPENC (2,1,C0,C2,5), 0),
+ SR_CORE ("trccntrldvr3", CPENC (2,1,C0,C3,5), 0),
+ SR_CORE ("trccntvr0", CPENC (2,1,C0,C8,5), 0),
+ SR_CORE ("trccntvr1", CPENC (2,1,C0,C9,5), 0),
+ SR_CORE ("trccntvr2", CPENC (2,1,C0,C10,5), 0),
+ SR_CORE ("trccntvr3", CPENC (2,1,C0,C11,5), 0),
+ SR_CORE ("trcconfigr", CPENC (2,1,C0,C4,0), 0),
+ SR_CORE ("trcdvcmr0", CPENC (2,1,C2,C0,6), 0),
+ SR_CORE ("trcdvcmr1", CPENC (2,1,C2,C4,6), 0),
+ SR_CORE ("trcdvcmr2", CPENC (2,1,C2,C8,6), 0),
+ SR_CORE ("trcdvcmr3", CPENC (2,1,C2,C12,6), 0),
+ SR_CORE ("trcdvcmr4", CPENC (2,1,C2,C0,7), 0),
+ SR_CORE ("trcdvcmr5", CPENC (2,1,C2,C4,7), 0),
+ SR_CORE ("trcdvcmr6", CPENC (2,1,C2,C8,7), 0),
+ SR_CORE ("trcdvcmr7", CPENC (2,1,C2,C12,7), 0),
+ SR_CORE ("trcdvcvr0", CPENC (2,1,C2,C0,4), 0),
+ SR_CORE ("trcdvcvr1", CPENC (2,1,C2,C4,4), 0),
+ SR_CORE ("trcdvcvr2", CPENC (2,1,C2,C8,4), 0),
+ SR_CORE ("trcdvcvr3", CPENC (2,1,C2,C12,4), 0),
+ SR_CORE ("trcdvcvr4", CPENC (2,1,C2,C0,5), 0),
+ SR_CORE ("trcdvcvr5", CPENC (2,1,C2,C4,5), 0),
+ SR_CORE ("trcdvcvr6", CPENC (2,1,C2,C8,5), 0),
+ SR_CORE ("trcdvcvr7", CPENC (2,1,C2,C12,5), 0),
+ SR_CORE ("trceventctl0r", CPENC (2,1,C0,C8,0), 0),
+ SR_CORE ("trceventctl1r", CPENC (2,1,C0,C9,0), 0),
+ SR_CORE ("trcextinselr0", CPENC (2,1,C0,C8,4), 0),
+ SR_CORE ("trcextinselr", CPENC (2,1,C0,C8,4), 0),
+ SR_CORE ("trcextinselr1", CPENC (2,1,C0,C9,4), 0),
+ SR_CORE ("trcextinselr2", CPENC (2,1,C0,C10,4), 0),
+ SR_CORE ("trcextinselr3", CPENC (2,1,C0,C11,4), 0),
+ SR_CORE ("trcimspec0", CPENC (2,1,C0,C0,7), 0),
+ SR_CORE ("trcimspec0", CPENC (2,1,C0,C0,7), 0),
+ SR_CORE ("trcimspec1", CPENC (2,1,C0,C1,7), 0),
+ SR_CORE ("trcimspec2", CPENC (2,1,C0,C2,7), 0),
+ SR_CORE ("trcimspec3", CPENC (2,1,C0,C3,7), 0),
+ SR_CORE ("trcimspec4", CPENC (2,1,C0,C4,7), 0),
+ SR_CORE ("trcimspec5", CPENC (2,1,C0,C5,7), 0),
+ SR_CORE ("trcimspec6", CPENC (2,1,C0,C6,7), 0),
+ SR_CORE ("trcimspec7", CPENC (2,1,C0,C7,7), 0),
+ SR_CORE ("trcitctrl", CPENC (2,1,C7,C0,4), 0),
+ SR_CORE ("trcpdcr", CPENC (2,1,C1,C4,4), 0),
+ SR_CORE ("trcprgctlr", CPENC (2,1,C0,C1,0), 0),
+ SR_CORE ("trcprocselr", CPENC (2,1,C0,C2,0), 0),
+ SR_CORE ("trcqctlr", CPENC (2,1,C0,C1,1), 0),
+ SR_CORE ("trcrsctlr2", CPENC (2,1,C1,C2,0), 0),
+ SR_CORE ("trcrsctlr3", CPENC (2,1,C1,C3,0), 0),
+ SR_CORE ("trcrsctlr4", CPENC (2,1,C1,C4,0), 0),
+ SR_CORE ("trcrsctlr5", CPENC (2,1,C1,C5,0), 0),
+ SR_CORE ("trcrsctlr6", CPENC (2,1,C1,C6,0), 0),
+ SR_CORE ("trcrsctlr7", CPENC (2,1,C1,C7,0), 0),
+ SR_CORE ("trcrsctlr8", CPENC (2,1,C1,C8,0), 0),
+ SR_CORE ("trcrsctlr9", CPENC (2,1,C1,C9,0), 0),
+ SR_CORE ("trcrsctlr10", CPENC (2,1,C1,C10,0), 0),
+ SR_CORE ("trcrsctlr11", CPENC (2,1,C1,C11,0), 0),
+ SR_CORE ("trcrsctlr12", CPENC (2,1,C1,C12,0), 0),
+ SR_CORE ("trcrsctlr13", CPENC (2,1,C1,C13,0), 0),
+ SR_CORE ("trcrsctlr14", CPENC (2,1,C1,C14,0), 0),
+ SR_CORE ("trcrsctlr15", CPENC (2,1,C1,C15,0), 0),
+ SR_CORE ("trcrsctlr16", CPENC (2,1,C1,C0,1), 0),
+ SR_CORE ("trcrsctlr17", CPENC (2,1,C1,C1,1), 0),
+ SR_CORE ("trcrsctlr18", CPENC (2,1,C1,C2,1), 0),
+ SR_CORE ("trcrsctlr19", CPENC (2,1,C1,C3,1), 0),
+ SR_CORE ("trcrsctlr20", CPENC (2,1,C1,C4,1), 0),
+ SR_CORE ("trcrsctlr21", CPENC (2,1,C1,C5,1), 0),
+ SR_CORE ("trcrsctlr22", CPENC (2,1,C1,C6,1), 0),
+ SR_CORE ("trcrsctlr23", CPENC (2,1,C1,C7,1), 0),
+ SR_CORE ("trcrsctlr24", CPENC (2,1,C1,C8,1), 0),
+ SR_CORE ("trcrsctlr25", CPENC (2,1,C1,C9,1), 0),
+ SR_CORE ("trcrsctlr26", CPENC (2,1,C1,C10,1), 0),
+ SR_CORE ("trcrsctlr27", CPENC (2,1,C1,C11,1), 0),
+ SR_CORE ("trcrsctlr28", CPENC (2,1,C1,C12,1), 0),
+ SR_CORE ("trcrsctlr29", CPENC (2,1,C1,C13,1), 0),
+ SR_CORE ("trcrsctlr30", CPENC (2,1,C1,C14,1), 0),
+ SR_CORE ("trcrsctlr31", CPENC (2,1,C1,C15,1), 0),
+ SR_CORE ("trcseqevr0", CPENC (2,1,C0,C0,4), 0),
+ SR_CORE ("trcseqevr1", CPENC (2,1,C0,C1,4), 0),
+ SR_CORE ("trcseqevr2", CPENC (2,1,C0,C2,4), 0),
+ SR_CORE ("trcseqrstevr", CPENC (2,1,C0,C6,4), 0),
+ SR_CORE ("trcseqstr", CPENC (2,1,C0,C7,4), 0),
+ SR_CORE ("trcssccr0", CPENC (2,1,C1,C0,2), 0),
+ SR_CORE ("trcssccr1", CPENC (2,1,C1,C1,2), 0),
+ SR_CORE ("trcssccr2", CPENC (2,1,C1,C2,2), 0),
+ SR_CORE ("trcssccr3", CPENC (2,1,C1,C3,2), 0),
+ SR_CORE ("trcssccr4", CPENC (2,1,C1,C4,2), 0),
+ SR_CORE ("trcssccr5", CPENC (2,1,C1,C5,2), 0),
+ SR_CORE ("trcssccr6", CPENC (2,1,C1,C6,2), 0),
+ SR_CORE ("trcssccr7", CPENC (2,1,C1,C7,2), 0),
+ SR_CORE ("trcsscsr0", CPENC (2,1,C1,C8,2), 0),
+ SR_CORE ("trcsscsr1", CPENC (2,1,C1,C9,2), 0),
+ SR_CORE ("trcsscsr2", CPENC (2,1,C1,C10,2), 0),
+ SR_CORE ("trcsscsr3", CPENC (2,1,C1,C11,2), 0),
+ SR_CORE ("trcsscsr4", CPENC (2,1,C1,C12,2), 0),
+ SR_CORE ("trcsscsr5", CPENC (2,1,C1,C13,2), 0),
+ SR_CORE ("trcsscsr6", CPENC (2,1,C1,C14,2), 0),
+ SR_CORE ("trcsscsr7", CPENC (2,1,C1,C15,2), 0),
+ SR_CORE ("trcsspcicr0", CPENC (2,1,C1,C0,3), 0),
+ SR_CORE ("trcsspcicr1", CPENC (2,1,C1,C1,3), 0),
+ SR_CORE ("trcsspcicr2", CPENC (2,1,C1,C2,3), 0),
+ SR_CORE ("trcsspcicr3", CPENC (2,1,C1,C3,3), 0),
+ SR_CORE ("trcsspcicr4", CPENC (2,1,C1,C4,3), 0),
+ SR_CORE ("trcsspcicr5", CPENC (2,1,C1,C5,3), 0),
+ SR_CORE ("trcsspcicr6", CPENC (2,1,C1,C6,3), 0),
+ SR_CORE ("trcsspcicr7", CPENC (2,1,C1,C7,3), 0),
+ SR_CORE ("trcstallctlr", CPENC (2,1,C0,C11,0), 0),
+ SR_CORE ("trcsyncpr", CPENC (2,1,C0,C13,0), 0),
+ SR_CORE ("trctraceidr", CPENC (2,1,C0,C0,1), 0),
+ SR_CORE ("trctsctlr", CPENC (2,1,C0,C12,0), 0),
+ SR_CORE ("trcvdarcctlr", CPENC (2,1,C0,C10,2), 0),
+ SR_CORE ("trcvdctlr", CPENC (2,1,C0,C8,2), 0),
+ SR_CORE ("trcvdsacctlr", CPENC (2,1,C0,C9,2), 0),
+ SR_CORE ("trcvictlr", CPENC (2,1,C0,C0,2), 0),
+ SR_CORE ("trcviiectlr", CPENC (2,1,C0,C1,2), 0),
+ SR_CORE ("trcvipcssctlr", CPENC (2,1,C0,C3,2), 0),
+ SR_CORE ("trcvissctlr", CPENC (2,1,C0,C2,2), 0),
+ SR_CORE ("trcvmidcctlr0", CPENC (2,1,C3,C2,2), 0),
+ SR_CORE ("trcvmidcctlr1", CPENC (2,1,C3,C3,2), 0),
+ SR_CORE ("trcvmidcvr0", CPENC (2,1,C3,C0,1), 0),
+ SR_CORE ("trcvmidcvr1", CPENC (2,1,C3,C2,1), 0),
+ SR_CORE ("trcvmidcvr2", CPENC (2,1,C3,C4,1), 0),
+ SR_CORE ("trcvmidcvr3", CPENC (2,1,C3,C6,1), 0),
+ SR_CORE ("trcvmidcvr4", CPENC (2,1,C3,C8,1), 0),
+ SR_CORE ("trcvmidcvr5", CPENC (2,1,C3,C10,1), 0),
+ SR_CORE ("trcvmidcvr6", CPENC (2,1,C3,C12,1), 0),
+ SR_CORE ("trcvmidcvr7", CPENC (2,1,C3,C14,1), 0),
+ SR_CORE ("trclar", CPENC (2,1,C7,C12,6), F_REG_WRITE),
+ SR_CORE ("trcoslar", CPENC (2,1,C1,C0,4), F_REG_WRITE),
+
{ 0, CPENC (0,0,0,0,0), 0, 0 }
};