aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2021-12-02 15:00:56 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2021-12-02 15:00:56 +0000
commite14c9cb6c88e3dbcbaef4e0f62f8e07ece17b51b (patch)
treeaba47ab38cf70e915e3dd89b2b4530f64ab1f147 /gas
parent175eafaf378659f6798c5b1b7591e9a3b1abd042 (diff)
downloadfsf-binutils-gdb-e14c9cb6c88e3dbcbaef4e0f62f8e07ece17b51b.zip
fsf-binutils-gdb-e14c9cb6c88e3dbcbaef4e0f62f8e07ece17b51b.tar.gz
fsf-binutils-gdb-e14c9cb6c88e3dbcbaef4e0f62f8e07ece17b51b.tar.bz2
aarch64: Add id_aa64isar2_el1
Armv8.8-A defines a read-only system register called id_aa64isar2_el1. The register was previously RES0 and should therefore be accepted at all architecture levels. [https://developer.arm.com/documentation/ddi0595/2021-09/AArch64-Registers/ID-AA64ISAR2-EL1--AArch64-Instruction-Set-Attribute-Register-2?lang=en] opcodes/ * aarch64-opc.c (aarch64_sys_regs): Add id_aa64isar2_el1. gas/ * testsuite/gas/aarch64/sysreg-diagnostic.s: Test writes to id_aa64isar2_el1. * testsuite/gas/aarch64/sysreg-diagnostic.d: Update accordingly. * testsuite/gas/aarch64/sysreg-diagnostic.l: Likewise. * testsuite/gas/aarch64/sysreg.s: Test reads from id_aa64isar2_el1. * testsuite/gas/aarch64/sysreg.d: Update accordingly.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/gas/aarch64/sysreg-diagnostic.d1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg-diagnostic.l1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg-diagnostic.s1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg.s3
5 files changed, 8 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.d b/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
index fb39db2..7059fbe 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
@@ -12,3 +12,4 @@ Disassembly of section \.text:
.*: d5330503 mrs x3, dbgdtrrx_el0
.*: d5330503 mrs x3, dbgdtrrx_el0
.*: d5180003 msr midr_el1, x3 // note: writing to a read-only register
+.*: d5180640 msr id_aa64isar2_el1, x0 // note: writing to a read-only register
diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.l b/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
index 4566652..e9a41a2 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
@@ -2,3 +2,4 @@
.*:3: Warning: specified register cannot be written to at operand 1 -- `msr dbgdtrrx_el0,x3'
.*:5: Warning: specified register cannot be read from at operand 2 -- `mrs x3,dbgdtrtx_el0'
.*:6: Warning: specified register cannot be written to at operand 1 -- `msr midr_el1,x3'
+.*:7: Warning: specified register cannot be written to at operand 1 -- `msr id_aa64isar2_el1,x0'
diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.s b/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
index 5f68fe6..a689cdc 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
@@ -4,3 +4,4 @@
mrs x3, dbgdtrrx_el0
mrs x3, dbgdtrtx_el0
msr midr_el1, x3
+ msr id_aa64isar2_el1, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg.d b/gas/testsuite/gas/aarch64/sysreg.d
index 5da20c9..704666d 100644
--- a/gas/testsuite/gas/aarch64/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg.d
@@ -29,3 +29,5 @@ Disassembly of section \.text:
54: d5184b00 msr s3_0_c4_c11_0, x0
58: d5310300 mrs x0, trcstatr
5c: d5110300 msr trcstatr, x0
+ 60: d5380640 mrs x0, id_aa64isar2_el1
+ 64: d538065e mrs x30, id_aa64isar2_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg.s b/gas/testsuite/gas/aarch64/sysreg.s
index fa79728..f2e75a8 100644
--- a/gas/testsuite/gas/aarch64/sysreg.s
+++ b/gas/testsuite/gas/aarch64/sysreg.s
@@ -30,3 +30,6 @@
mrs x0, s2_1_c0_c3_0
msr s2_1_c0_c3_0, x0
+
+ mrs x0, id_aa64isar2_el1
+ mrs x30, id_aa64isar2_el1