aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2022-05-09 11:44:30 +0800
committerKito Cheng <kito.cheng@sifive.com>2022-05-09 11:46:42 +0800
commit27239e13b1ba383e2706231917062aa6e14150a8 (patch)
treef211dc1e06e5656b6aaa390d3b035f5ed5b70126 /gcc
parent15f0099b21f1f978f5d58496bd9f91d78bcf4a57 (diff)
downloadgcc-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-xgcc/config/riscv/arch-canonicalize8
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