mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
RISC-V: Reorder the prefixed extensions which are out of order.
This patch has been pending for almost a year... However, I noticed that llvm can already re-order the extensions, even if they are out of orders. Not really sure if they can also re-order the single letter extensions, but at least we can do this for the multi-letter extensions in binutils. bfd/ * elfxx-riscv.c (riscv_parse_prefixed_ext): Removed the code which are used to check the prefixed extension orders. gas/ * testsuite/gas/riscv/march-fail-order-x-z.d: Removed since we will help tp reorder the prefixed extensions for now. * testsuite/gas/riscv/march-fail-order-x-z.l: Likewise. * testsuite/gas/riscv/march-fail-order-x.d: Likewise. * testsuite/gas/riscv/march-fail-order-x.l: Likewise. * testsuite/gas/riscv/march-fail-order-z.d: Likewise. * testsuite/gas/riscv/march-fail-order-z.l: Likewise.
This commit is contained in:
@ -1729,7 +1729,6 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
|
||||
{
|
||||
int major_version;
|
||||
int minor_version;
|
||||
const char *last_name;
|
||||
enum riscv_prefix_ext_class class;
|
||||
|
||||
while (*p)
|
||||
@ -1806,28 +1805,6 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Check that the extension isn't duplicate. */
|
||||
last_name = rps->subset_list->tail->name;
|
||||
if (!strcasecmp (last_name, subset))
|
||||
{
|
||||
rps->error_handler
|
||||
(_("%s: duplicate prefixed ISA extension `%s'"),
|
||||
arch, subset);
|
||||
free (subset);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Check that the extension is in expected order. */
|
||||
if (riscv_compare_subsets (last_name, subset) > 0)
|
||||
{
|
||||
rps->error_handler
|
||||
(_("%s: prefixed ISA extension `%s' is not in expected "
|
||||
"order. It must come before `%s'"),
|
||||
arch, subset, last_name);
|
||||
free (subset);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
riscv_parse_add_subset (rps, subset,
|
||||
major_version,
|
||||
minor_version, false);
|
||||
|
@ -1,3 +0,0 @@
|
||||
#as: -march=rv32i_xargle2p0_zicsr2p0
|
||||
#source: empty.s
|
||||
#error_output: march-fail-order-x-z.l
|
@ -1,2 +0,0 @@
|
||||
.*Assembler messages:
|
||||
.*Error: .*prefixed ISA extension `zicsr' is not in expected order. It must come before `xargle'
|
@ -1,3 +0,0 @@
|
||||
#as: -march=rv32i_xbargle2p0_xargle2p0
|
||||
#source: empty.s
|
||||
#error_output: march-fail-order-x.l
|
@ -1,2 +0,0 @@
|
||||
.*Assembler messages:
|
||||
.*Error: .*prefixed ISA extension `xargle' is not in expected order. It must come before `xbargle'
|
@ -1,3 +0,0 @@
|
||||
#as: -march=rv32i_zifencei2p0_zicsr2p0
|
||||
#source: empty.s
|
||||
#error_output: march-fail-order-z.l
|
@ -1,2 +0,0 @@
|
||||
.*Assembler messages:
|
||||
.*Error: .*prefixed ISA extension `zicsr' is not in expected order. It must come before `zifencei'
|
Reference in New Issue
Block a user