]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - bfd/elfxx-riscv.c
RISC-V: Minor cleanup and testcases improvement for arch string parser.
authorNelson Chu <nelson.chu@sifive.com>
Fri, 20 Nov 2020 06:45:32 +0000 (14:45 +0800)
committerNelson Chu <nelson.chu@sifive.com>
Tue, 1 Dec 2020 07:04:03 +0000 (15:04 +0800)
commitd541518bec90502134ea6b348cb2d4f3363d1c70
treeb524b61fd9d37397cbc1be5d6cffb3694f2aca01
parent56af5a30b8efa34ce30f7d93da7dc981dda82f61
RISC-V: Minor cleanup and testcases improvement for arch string parser.

Re-indent the related codes, unify and improve the related error messages
and comments.  Besies, also re-write the testcases to cover more cases.

bfd/
* elfxx-riscv.c: Re-indent codes, unify and improve the error
messages and comments.
(riscv_parse_prefixed_ext): Stop parsing the prefixed class
extensions if the class is RV_ISA_CLASS_UNKNOWN, I get internal
errors before adding this check for march-fail-porder* testcases.
(riscv_parse_subset): Move the rv32 with q checking in front.
* elfxx-riscv.h: Likewise.

gas/
(These are new testcases that cover more cases)
* testsuite/gas/riscv/march-fail-base-01.d: The first extension must
be e, i or g.
* testsuite/gas/riscv/march-fail-base-01.l: Likewise.
* testsuite/gas/riscv/march-fail-base-02.d: rv64e is an invalid base ISA.
* testsuite/gas/riscv/march-fail-base-02.l: Likewise.
* testsuite/gas/riscv/march-fail-order-std.d: Check orders of standard
extensions.
* testsuite/gas/riscv/march-fail-order-std.l: Likewise.
* testsuite/gas/riscv/march-fail-order-x.d: Check orders of prefixed
x extensions.
* testsuite/gas/riscv/march-fail-order-x.l: Likewise.
* testsuite/gas/riscv/march-fail-porder-x-std.d: Check orders when
standard and prefixed extensions are set at the same time.
* testsuite/gas/riscv/march-fail-porder-x-z.d: Likewise.
* testsuite/gas/riscv/march-fail-porder-z-std.d: Likewise.
* testsuite/gas/riscv/march-fail-porder.l: Likewise.
* testsuite/gas/riscv/march-fail-single-char-s.d: Only standard
extensions can use single char.
* testsuite/gas/riscv/march-fail-single-char-x.d: Likewise.
* testsuite/gas/riscv/march-fail-single-char-z.d: Likewise.
* testsuite/gas/riscv/march-fail-single-char.l: Likewise.
* testsuite/gas/riscv/march-fail-unknown-s.d: All extensions
should be known, except the non-standard x extensions.
* testsuite/gas/riscv/march-fail-unknown-std.d: Likewise.
* testsuite/gas/riscv/march-fail-unknown-std.l: Likewise.
* testsuite/gas/riscv/march-fail-unknown-z.d: Likewise.
* testsuite/gas/riscv/march-fail-unknown.l: Likewise.
* testsuite/gas/riscv/march-fail-uppercase-base.d: Do not
allow any uppercase in the arch string.
* testsuite/gas/riscv/march-fail-uppercase-std.d: Likewise.
* testsuite/gas/riscv/march-fail-uppercase-z.d: Likewise.
* testsuite/gas/riscv/march-fail-uppercase.l: Likewise.
* testsuite/gas/riscv/march-fail-version-x.d: Failed to set versions.
* testsuite/gas/riscv/march-fail-version-z.d: Likewise.
* testsuite/gas/riscv/march-fail-version.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32ef.l: Updated.
* testsuite/gas/riscv/march-fail-rv32id.d: Need f-ext.
* testsuite/gas/riscv/march-fail-rv32iq.d: Should be rv64.
* testsuite/gas/riscv/march-fail-rv32iq.l: Likewise.
* testsuite/gas/riscv/march-fail-rv64iq.d: Need d-ext and f-ext.
* testsuite/gas/riscv/march-fail-rv64iq.l: Likewise.

(The following testcases are removed and covered by new testcases)
* testsuite/gas/riscv/march-fail-rv32i.d: march-fail-uppercase-base.
* testsuite/gas/riscv/march-fail-rv32i.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32iam.d: march-fail-order-std.
* testsuite/gas/riscv/march-fail-rv32iam.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32ic.d: march-fail-uppercase-std.
* testsuite/gas/riscv/march-fail-rv32ic.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32icx2p.d: march-fail-version-x.
* testsuite/gas/riscv/march-fail-rv32icx2p.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32imc.d: march-fail-order-std.
* testsuite/gas/riscv/march-fail-rv32imc.l: Likewise.
* testsuite/gas/riscv/march-fail-rv64I.d: march-fail-uppercase-std.
* testsuite/gas/riscv/march-fail-rv64I.l: Likewise.
* testsuite/gas/riscv/march-fail-rv64e.d: march-fail-base-02.
* testsuite/gas/riscv/march-fail-rv64e.l: Likewise.
* testsuite/gas/riscv/march-fail-s-with-version.d: march-fail-unknown-s.
* testsuite/gas/riscv/march-fail-s-with-version.l: Likewise.
* testsuite/gas/riscv/march-fail-s.d: march-fail-unknown-s.
* testsuite/gas/riscv/march-fail-s.l: Likewise.
* testsuite/gas/riscv/march-fail-sx.d: march-fail-unknown-s.
* testsuite/gas/riscv/march-fail-sx.l: Likewise.
58 files changed:
bfd/ChangeLog
bfd/elfxx-riscv.c
bfd/elfxx-riscv.h
gas/ChangeLog
gas/testsuite/gas/riscv/march-fail-base-01.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-base-01.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-base-02.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-base-02.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-order-std.d [moved from gas/testsuite/gas/riscv/march-fail-rv32imc.d with 50% similarity]
gas/testsuite/gas/riscv/march-fail-order-std.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-order-x.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-order-x.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-porder-x-std.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-porder-x-z.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-porder-z-std.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-porder.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv32ef.l
gas/testsuite/gas/riscv/march-fail-rv32i.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32i.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32iam.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32iam.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32ic.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32ic.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32icx2p.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32icx2p.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32id.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv32id.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv32imc.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv32iq.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv32iq.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv64I.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv64I.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv64e.d [deleted file]
gas/testsuite/gas/riscv/march-fail-rv64e.l [deleted file]
gas/testsuite/gas/riscv/march-fail-rv64iq.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-rv64iq.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-s-with-version.d [deleted file]
gas/testsuite/gas/riscv/march-fail-s-with-version.l [deleted file]
gas/testsuite/gas/riscv/march-fail-s.d [deleted file]
gas/testsuite/gas/riscv/march-fail-s.l [deleted file]
gas/testsuite/gas/riscv/march-fail-single-char-s.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-single-char-x.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-single-char-z.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-single-char.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-sx.d [deleted file]
gas/testsuite/gas/riscv/march-fail-sx.l [deleted file]
gas/testsuite/gas/riscv/march-fail-unknown-s.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-unknown-std.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-unknown-std.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-unknown-z.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-unknown.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-uppercase-base.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-uppercase-std.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-uppercase-z.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-uppercase.l [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-version-x.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-version-z.d [new file with mode: 0644]
gas/testsuite/gas/riscv/march-fail-version.l [new file with mode: 0644]