[PATCH v2 2/3] RISC-V: Imply 'Zicsr' from 'Zkr'
Tsukasa OI
research_trasio@irq.a4lg.com
Wed Sep 7 06:21:50 GMT 2022
Because the 'Zkr' extension implements a CSR, seed, it requires 'Zicsr' as
a prerequisite. On such cases, it's natural to imply required extension.
This commit adds Zkr -> Zicsr to the extension implication list.
bfd/ChangeLog:
* elfxx-riscv.c (riscv_implicit_subsets): Imply 'Zicsr' from 'Zkr'.
gas/ChangeLog:
* testsuite/gas/riscv/zkr.s: Separate test for the 'Zkr' extension.
* testsuite/gas/riscv/zkr.d: Likewise.
---
bfd/elfxx-riscv.c | 1 +
gas/testsuite/gas/riscv/zkr.d | 10 ++++++++++
gas/testsuite/gas/riscv/zkr.s | 2 ++
3 files changed, 13 insertions(+)
create mode 100644 gas/testsuite/gas/riscv/zkr.d
create mode 100644 gas/testsuite/gas/riscv/zkr.s
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index fb742dc9272..2e91963bbfb 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1092,6 +1092,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zkn", "zkne", check_implicit_always},
{"zkn", "zknd", check_implicit_always},
{"zkn", "zknh", check_implicit_always},
+ {"zkr", "zicsr", check_implicit_always},
{"zks", "zbkb", check_implicit_always},
{"zks", "zbkc", check_implicit_always},
{"zks", "zbkx", check_implicit_always},
diff --git a/gas/testsuite/gas/riscv/zkr.d b/gas/testsuite/gas/riscv/zkr.d
new file mode 100644
index 00000000000..4c0471835a1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zkr.d
@@ -0,0 +1,10 @@
+#as: -march=rv32i_zkr -mcsr-check
+#objdump: -d
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[ ]+[0-9a-f]+:[ ]+01502573[ ]+csrr[ ]+a0,seed
diff --git a/gas/testsuite/gas/riscv/zkr.s b/gas/testsuite/gas/riscv/zkr.s
new file mode 100644
index 00000000000..96a38fbf49f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zkr.s
@@ -0,0 +1,2 @@
+target:
+ csrr a0, seed
--
2.34.1
More information about the Binutils
mailing list