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 major_version;
|
||||||
int minor_version;
|
int minor_version;
|
||||||
const char *last_name;
|
|
||||||
enum riscv_prefix_ext_class class;
|
enum riscv_prefix_ext_class class;
|
||||||
|
|
||||||
while (*p)
|
while (*p)
|
||||||
@ -1806,28 +1805,6 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
|
|||||||
return NULL;
|
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,
|
riscv_parse_add_subset (rps, subset,
|
||||||
major_version,
|
major_version,
|
||||||
minor_version, false);
|
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