diff options
author | Claudio Bantaloukas <claudio.bantaloukas@arm.com> | 2024-05-20 15:18:10 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2024-05-20 15:18:10 +0100 |
commit | e390d876abbf3b4f411b908e6dc37ed9954e24b4 (patch) | |
tree | 348f40175b75533ed58d04f32a4a42ad3fd2416e | |
parent | e8c83191cc6fee517d2029109c61981b4092439d (diff) | |
download | gdb-e390d876abbf3b4f411b908e6dc37ed9954e24b4.zip gdb-e390d876abbf3b4f411b908e6dc37ed9954e24b4.tar.gz gdb-e390d876abbf3b4f411b908e6dc37ed9954e24b4.tar.bz2 |
aarch64: Add support for the fpmr system register
5 files changed, 24 insertions, 0 deletions
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 index 0000000..edef376 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d @@ -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 index 0000000..c0b30c2 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d @@ -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 index 0000000..43de018 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.l @@ -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 index 0000000..302847d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/fpmr.s @@ -0,0 +1,4 @@ + .text + + mrs x0, fpmr + msr fpmr, x0 diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def index 7cbc9a4..c47563c 100644 --- a/opcodes/aarch64-sys-regs.def +++ b/opcodes/aarch64-sys-regs.def @@ -423,6 +423,7 @@ 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)) |