]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Add support for the fpmr system register
authorClaudio Bantaloukas <claudio.bantaloukas@arm.com>
Mon, 20 May 2024 14:18:10 +0000 (15:18 +0100)
committerNick Clifton <nickc@redhat.com>
Mon, 20 May 2024 14:18:10 +0000 (15:18 +0100)
gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysreg/fpmr.s [new file with mode: 0644]
opcodes/aarch64-sys-regs.def

diff --git a/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d
new file mode 100644 (file)
index 0000000..edef376
--- /dev/null
@@ -0,0 +1,12 @@
+#name: Test that fpmr register is gated and available via the fp8 feature
+#source: fpmr.s
+#as: -march=armv9.2-a+fp8
+#objdump: -dr
+
+.*:     file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+   0:  d53b4440        mrs     x0, fpmr
+   4:  d51b4440        msr     fpmr, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d
new file mode 100644 (file)
index 0000000..c0b30c2
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Test that fpmr register is not supported by default
+#source: fpmr.s
+#as: -march=armv9.2-a
+#error_output: fpmr-unsupported-by-default.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.l b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.l
new file mode 100644 (file)
index 0000000..43de018
--- /dev/null
@@ -0,0 +1,3 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support system register name 'fpmr'
+.*: Error: selected processor does not support system register name 'fpmr'
diff --git a/gas/testsuite/gas/aarch64/sysreg/fpmr.s b/gas/testsuite/gas/aarch64/sysreg/fpmr.s
new file mode 100644 (file)
index 0000000..302847d
--- /dev/null
@@ -0,0 +1,4 @@
+       .text
+
+  mrs x0, fpmr
+  msr fpmr, x0
index 7cbc9a4811fe3a89b5845bb6eec053898ff744da..c47563c1f1aa92f628b9b694822a96877dcc2c52 100644 (file)
   SYSREG ("far_el3",           CPENC (3,6,6,0,0),      0,                      AARCH64_NO_FEATURES)
   SYSREG ("fpcr",              CPENC (3,3,4,4,0),      0,                      AARCH64_NO_FEATURES)
   SYSREG ("fpexc32_el2",       CPENC (3,4,5,3,0),      0,                      AARCH64_NO_FEATURES)
+  SYSREG ("fpmr",              CPENC (3,3,4,4,2),      F_ARCHEXT,              AARCH64_FEATURE (FP8))
   SYSREG ("fpsr",              CPENC (3,3,4,4,1),      0,                      AARCH64_NO_FEATURES)
   SYSREG ("gcspr_el0",         CPENC (3,3,2,5,1),      F_ARCHEXT,              AARCH64_FEATURE (GCS))
   SYSREG ("gcspr_el1",         CPENC (3,0,2,5,1),      F_ARCHEXT,              AARCH64_FEATURE (GCS))