diff options
author | Kito Cheng <kito.cheng@sifive.com> | 2022-05-09 11:44:30 +0800 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2022-05-09 11:46:42 +0800 |
commit | 27239e13b1ba383e2706231917062aa6e14150a8 (patch) | |
tree | f211dc1e06e5656b6aaa390d3b035f5ed5b70126 /gcc | |
parent | 15f0099b21f1f978f5d58496bd9f91d78bcf4a57 (diff) | |
download | gcc-27239e13b1ba383e2706231917062aa6e14150a8.zip gcc-27239e13b1ba383e2706231917062aa6e14150a8.tar.gz gcc-27239e13b1ba383e2706231917062aa6e14150a8.tar.bz2 |
RISC-V: Fix wrong expansion for arch-canonicalize
rv64gcv should exapnd into:
rv64imafdcv_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b
but we exapnd fd twice for now:
rv64imafdfdcv_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b
gcc/ChangeLog:
* config/riscv/arch-canonicalize: Handle g correctly.
Diffstat (limited to 'gcc')
-rwxr-xr-x | gcc/config/riscv/arch-canonicalize | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/riscv/arch-canonicalize b/gcc/config/riscv/arch-canonicalize index f36a2ca..41bab69 100755 --- a/gcc/config/riscv/arch-canonicalize +++ b/gcc/config/riscv/arch-canonicalize @@ -70,8 +70,10 @@ def arch_canonicalize(arch, isa_spec): is_isa_spec_2p2 = isa_spec == '2.2' new_arch = "" extra_long_ext = [] + std_exts = [] if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']: - new_arch = arch[:5].replace("g", "imafd") + new_arch = arch[:5].replace("g", "i") + std_exts = ['m', 'a', 'f', 'd'] if arch[:5] in ['rv32g', 'rv64g']: if not is_isa_spec_2p2: extra_long_ext = ['zicsr', 'zifencei'] @@ -86,10 +88,10 @@ def arch_canonicalize(arch, isa_spec): if long_ext_prefixes_idx: first_long_ext_idx = min(long_ext_prefixes_idx) long_exts = arch[first_long_ext_idx:].split("_") - std_exts = list(arch[5:first_long_ext_idx]) + std_exts += list(arch[5:first_long_ext_idx]) else: long_exts = [] - std_exts = list(arch[5:]) + std_exts += list(arch[5:]) long_exts += extra_long_ext |