From: Kito Cheng Date: Mon, 9 May 2022 03:44:30 +0000 (+0800) Subject: RISC-V: Fix wrong expansion for arch-canonicalize X-Git-Tag: releases/gcc-12.2.0~281 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02e8dea4944f9995ed3623dc15c2ad73e0376f27;p=thirdparty%2Fgcc.git 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. (cherry picked from commit 27239e13b1ba383e2706231917062aa6e14150a8) --- diff --git a/gcc/config/riscv/arch-canonicalize b/gcc/config/riscv/arch-canonicalize index f36a2ca4593b..41bab69193ce 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