]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
RISC-V: Support B, Zaamo and Zalrsc extensions.
authorNelson Chu <nelson@rivosinc.com>
Mon, 5 Feb 2024 01:39:37 +0000 (09:39 +0800)
committerNelson Chu <nelson@rivosinc.com>
Wed, 8 May 2024 04:34:58 +0000 (12:34 +0800)
commitc144f638337944101131d9fe6de4ab908f6d4c2d
treec3dfb5240abd62be32e6ed7494dc11ae07e24f3c
parentf0dbbf5401814b001c820a9fa07054329d1d7f46
RISC-V: Support B, Zaamo and Zalrsc extensions.

* https://github.com/riscv/riscv-b/tags
Added standard B extension back, which implies Zba, Zbb and Zbs extensions.

* https://github.com/riscv/riscv-zaamo-zalrsc/tags
Splited standard A extension into two new extensions, Zaamo and Zalrsc.
The A extension implies Zaamo and Zalrsc extensions.

Not sure if we need to do the similar check as i and zicsr/zifencei.

Passed riscv[32|64]-[elf/linux] binutils testcases.

bfd/
* elfxx-riscv.c (riscv_implicit_subsets): Added imply rules
for A and B extensions.  The A implies Zaamo and Zalrsc, the
B implies Zba, Zbb and Zbs.
(riscv_supported_std_ext): Supported B extension with v1.0.
(riscv_supported_std_z_ext): Supported Zaamo and Zalrsc with v1.0.
(riscv_multi_subset_supports, riscv_multi_subset_supports_ext): Updated.
include/
* opcode/riscv.h (riscv_insn_class): Removed INSN_CLASS_A, Added
INSN_CLASS_ZAAMO and INSN_CLASS_ZALRSC.
opcodes/
* riscv-opc.c (riscv_opcodes): Splited standard A extension into two
new extensions, Zaamo and Zalrsc.
gas/
* testsuite/gas/riscv/march-imply-a.d: New testcase.
* testsuite/gas/riscv/march-imply-b.d: New testcase.
* testsuite/gas/riscv/attribute-01.d: Updated.
* testsuite/gas/riscv/attribute-02.d: Updated.
* testsuite/gas/riscv/attribute-03.d: Updated.
* testsuite/gas/riscv/attribute-04.d: Updated.
* testsuite/gas/riscv/attribute-05.d: Updated.
* testsuite/gas/riscv/attribute-10.d: Updated.
* testsuite/gas/riscv/mapping-symbols.d: Updated.
* testsuite/gas/riscv/march-imply-g.d: Updated.
* testsuite/gas/riscv/march-imply-unsupported.d: Updated.
* testsuite/gas/riscv/march-ok-reorder.d: Updated.
ld/
* testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-user-ext-01.d: Updated.
20 files changed:
bfd/elfxx-riscv.c
gas/testsuite/gas/riscv/attribute-01.d
gas/testsuite/gas/riscv/attribute-02.d
gas/testsuite/gas/riscv/attribute-03.d
gas/testsuite/gas/riscv/attribute-04.d
gas/testsuite/gas/riscv/attribute-05.d
gas/testsuite/gas/riscv/attribute-10.d
gas/testsuite/gas/riscv/mapping-symbols.d
gas/testsuite/gas/riscv/march-help.l
gas/testsuite/gas/riscv/march-imply-a.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-imply-b.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-imply-g.d
gas/testsuite/gas/riscv/march-imply-unsupported.d
gas/testsuite/gas/riscv/march-ok-reorder.d
include/opcode/riscv.h
ld/testsuite/ld-riscv-elf/attr-merge-arch-01.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-03.d
ld/testsuite/ld-riscv-elf/attr-merge-user-ext-01.d
opcodes/riscv-opc.c