aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorSudakshina Das <sudi.das@arm.com>2018-11-12 13:26:01 +0000
committerSudakshina Das <sudi.das@arm.com>2018-11-12 13:26:01 +0000
commit70f3d23af74dd6a1f90aec8748424cf0b5a953a5 (patch)
tree18a41867a7d54c63f487fbb4f1a53e74697852fc /gas
parent503ba600259856b41a88b56922e094ea826df270 (diff)
downloadgdb-70f3d23af74dd6a1f90aec8748424cf0b5a953a5.zip
gdb-70f3d23af74dd6a1f90aec8748424cf0b5a953a5.tar.gz
gdb-70f3d23af74dd6a1f90aec8748424cf0b5a953a5.tar.bz2
[BINUTILS, AARCH64, 7/8] Add system registers for Memory Tagging Extension
This patch is part of the patch series to add support for ARMv8.5-A Memory Tagging Extensions which is an optional extension to ARMv8.5-A and is enabled using the +memtag command line option. This patch adds all the system registers that are part of this extension and are accessible via the MRS/MSR instructions: - TCO - TFSRE0_SL1 - TFSR_EL1 - TFSR_EL2 - TFSR_EL3 - TFSR_EL12 - RGSR_EL1 - GCR_EL1 TCO is also accessible with the MSR(immediate) instruction. *** opcodes/ChangeLog *** 2018-11-12 Sudakshina Das <sudi.das@arm.com> * aarch64-opc.c (aarch64_sys_regs): New entries for TCO, TFSRE0_SL1, TFSR_EL1, TFSR_EL2, TFSR_EL3, TFSR_EL12, RGSR_EL1 and GCR_EL1. (aarch64_sys_reg_supported_p): New check for above. (aarch64_pstatefields): New entry for TCO. (aarch64_pstatefield_supported_p): New check for above. *** gas/ChangeLog *** 2018-11-12 Sudakshina Das <sudi.das@arm.com> * testsuite/gas/aarch64/sysreg-4.s: Test TCO, TFSRE0_SL1, TFSR_EL1, TFSR_EL2, TFSR_EL3, TFSR_EL12, RGSR_EL1 and GCR_EL1 MSR and MRS. * testsuite/gas/aarch64/sysreg-4.d: Likewise. * testsuite/gas/aarch64/illegal-sysreg-4.l: Likewise.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/testsuite/gas/aarch64/illegal-sysreg-4.l21
-rw-r--r--gas/testsuite/gas/aarch64/sysreg-4.d21
-rw-r--r--gas/testsuite/gas/aarch64/sysreg-4.s26
4 files changed, 75 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index eea9a4e..1709a9e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,13 @@
2018-11-12 Sudakshina Das <sudi.das@arm.com>
+ * testsuite/gas/aarch64/sysreg-4.s: Test TCO, TFSRE0_SL1,
+ TFSR_EL1, TFSR_EL2, TFSR_EL3, TFSR_EL12, RGSR_EL1 and
+ GCR_EL1 MSR and MRS.
+ * testsuite/gas/aarch64/sysreg-4.d: Likewise.
+ * testsuite/gas/aarch64/illegal-sysreg-4.l: Likewise.
+
+2018-11-12 Sudakshina Das <sudi.das@arm.com>
+
* config/tc-aarch64.c (parse_operands): Add switch case for
AARCH64_OPND_ADDR_SIMPLE_2 and allow [base]! for it.
(warn_unpredictable_ldst): Exempt ldstgv_indexed for ldgv.
diff --git a/gas/testsuite/gas/aarch64/illegal-sysreg-4.l b/gas/testsuite/gas/aarch64/illegal-sysreg-4.l
index 35c3cea..36abf4f 100644
--- a/gas/testsuite/gas/aarch64/illegal-sysreg-4.l
+++ b/gas/testsuite/gas/aarch64/illegal-sysreg-4.l
@@ -14,3 +14,24 @@
[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el3'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el12'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'id_pfr2_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsre0_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el2'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el3'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el12'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'rgsr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'gcr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support PSTATE field name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support PSTATE field name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsre0_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el2'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el3'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsr_el12'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'rgsr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support system register name 'gcr_el1'
+[^:]*:[0-9]+: Error: selected processor does not support PSTATE field name 'tco'
diff --git a/gas/testsuite/gas/aarch64/sysreg-4.d b/gas/testsuite/gas/aarch64/sysreg-4.d
index c24a232..0abeed8 100644
--- a/gas/testsuite/gas/aarch64/sysreg-4.d
+++ b/gas/testsuite/gas/aarch64/sysreg-4.d
@@ -1,5 +1,5 @@
#source: sysreg-4.s
-#as: -march=armv8.5-a+rng
+#as: -march=armv8.5-a+rng+memtag
#objdump: -dr
.*: file format .*
@@ -19,3 +19,22 @@ Disassembly of section \.text:
.*: d53ed0e7 mrs x7, scxtnum_el3
.*: d53dd0e7 mrs x7, scxtnum_el12
.*: d5380388 mrs x8, id_pfr2_el1
+.*: d53b42e1 mrs x1, tco
+.*: d53b42e2 mrs x2, tco
+.*: d5386621 mrs x1, tfsre0_el1
+.*: d5386501 mrs x1, tfsr_el1
+.*: d53c6502 mrs x2, tfsr_el2
+.*: d53e6603 mrs x3, tfsr_el3
+.*: d53d660c mrs x12, tfsr_el12
+.*: d53810a1 mrs x1, rgsr_el1
+.*: d53810c3 mrs x3, gcr_el1
+.*: d51b42e1 msr tco, x1
+.*: d51b42e2 msr tco, x2
+.*: d5186621 msr tfsre0_el1, x1
+.*: d5186501 msr tfsr_el1, x1
+.*: d51c6502 msr tfsr_el2, x2
+.*: d51e6603 msr tfsr_el3, x3
+.*: d51d660c msr tfsr_el12, x12
+.*: d51810a1 msr rgsr_el1, x1
+.*: d51810c3 msr gcr_el1, x3
+.*: d503489f msr tco, #0x8
diff --git a/gas/testsuite/gas/aarch64/sysreg-4.s b/gas/testsuite/gas/aarch64/sysreg-4.s
index b8f40d4..d25e9b9 100644
--- a/gas/testsuite/gas/aarch64/sysreg-4.s
+++ b/gas/testsuite/gas/aarch64/sysreg-4.s
@@ -12,3 +12,29 @@ func:
mrs x7, scxtnum_el3
mrs x7, scxtnum_el12
mrs x8, id_pfr2_el1
+
+ # ARMv8.5-a+memtag
+ # MRS (register)
+ mrs x1, tco
+ mrs x2, TCO
+ mrs x1, tfsre0_el1
+ mrs x1, TFSR_EL1
+ mrs x2, TFSR_EL2
+ mrs x3, TFSR_EL3
+ mrs x12, TFSR_EL12
+ mrs x1, rgsr_el1
+ mrs x3, gcr_el1
+
+ # MSR (register)
+ msr tco, x1
+ msr TCO, x2
+ msr tfsre0_el1, x1
+ msr TFSR_EL1, x1
+ msr TFSR_EL2, x2
+ msr TFSR_EL3, x3
+ msr TFSR_EL12, x12
+ msr rgsr_el1, x1
+ msr gcr_el1, x3
+
+ # MSR (immediate)
+ msr TCO, #8