Skip to content

Commit 38d7128

Browse files
committed
RISC-V: Add base instruction set multilibs
This commit adds the following base instruction set multilibs that can be used for every practical extension permutation: * rv32i_zicsr_zifencei * rv32e_zicsr_zifencei * rv64i_zicsr_zifencei These base instruction set multilibs are mapped to the compatible extension permutations that do not have a dedicated multilib in order to increase the ISA coverage of the toolchain. Note that the Zicsr and Zifencei extensions are still specified for the base instruction set multilibs because the Zephyr RISC-V architecture port requires them and it is not practical to configure a RISC-V core that does not support these instruction sets. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
1 parent 26b2e8e commit 38d7128

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

gcc/config/riscv/t-zephyr

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,37 @@
11
# Multilib target configurations
2-
MULTILIB_SRC_ARCH = rv32im_zicsr_zifencei
3-
MULTILIB_SRC_ARCH += rv32imc_zicsr_zifencei
2+
MULTILIB_SRC_ARCH = rv32i_zicsr_zifencei
3+
MULTILIB_SRC_ARCH += rv32im_zicsr_zifencei
4+
MULTILIB_SRC_ARCH += rv32ima_zicsr_zifencei
45
MULTILIB_SRC_ARCH += rv32imac_zicsr_zifencei
56
MULTILIB_SRC_ARCH += rv32imafc_zicsr_zifencei
67
MULTILIB_SRC_ARCH += rv32imafd_zicsr_zifencei
78
MULTILIB_SRC_ARCH += rv32imafdc_zicsr_zifencei
9+
MULTILIB_SRC_ARCH += rv32imc_zicsr_zifencei
10+
MULTILIB_SRC_ARCH += rv32ia_zicsr_zifencei
11+
MULTILIB_SRC_ARCH += rv32iac_zicsr_zifencei
12+
MULTILIB_SRC_ARCH += rv32ic_zicsr_zifencei
813
MULTILIB_SRC_ARCH += rv32g
914
MULTILIB_SRC_ARCH += rv32gc
15+
MULTILIB_SRC_ARCH += rv32e_zicsr_zifencei
1016
MULTILIB_SRC_ARCH += rv32em_zicsr_zifencei
1117
MULTILIB_SRC_ARCH += rv32ema_zicsr_zifencei
1218
MULTILIB_SRC_ARCH += rv32emc_zicsr_zifencei
1319
MULTILIB_SRC_ARCH += rv32emac_zicsr_zifencei
20+
MULTILIB_SRC_ARCH += rv32ea_zicsr_zifencei
21+
MULTILIB_SRC_ARCH += rv32eac_zicsr_zifencei
22+
MULTILIB_SRC_ARCH += rv32ec_zicsr_zifencei
23+
MULTILIB_SRC_ARCH += rv64i_zicsr_zifencei
24+
MULTILIB_SRC_ARCH += rv64im_zicsr_zifencei
25+
MULTILIB_SRC_ARCH += rv64ima_zicsr_zifencei
1426
MULTILIB_SRC_ARCH += rv64imac_zicsr_zifencei
15-
MULTILIB_SRC_ARCH += rv64imafdc_zicsr_zifencei
16-
MULTILIB_SRC_ARCH += rv64gc
1727
MULTILIB_SRC_ARCH += rv64imafd_zicsr_zifencei
28+
MULTILIB_SRC_ARCH += rv64imafdc_zicsr_zifencei
29+
MULTILIB_SRC_ARCH += rv64imc_zicsr_zifencei
30+
MULTILIB_SRC_ARCH += rv64ia_zicsr_zifencei
31+
MULTILIB_SRC_ARCH += rv64iac_zicsr_zifencei
32+
MULTILIB_SRC_ARCH += rv64ic_zicsr_zifencei
1833
MULTILIB_SRC_ARCH += rv64g
34+
MULTILIB_SRC_ARCH += rv64gc
1935

2036
MULTILIB_SRC_ABI = ilp32
2137
MULTILIB_SRC_ABI += ilp32f
@@ -28,12 +44,15 @@ MULTILIB_SRC_MCMODEL = medany
2844

2945
# Multilib build configurations
3046
MULTILIB_REQUIRED = \
47+
march=rv32i_zicsr_zifencei/mabi=ilp32 \
3148
march=rv32im_zicsr_zifencei/mabi=ilp32 \
3249
march=rv32imac_zicsr_zifencei/mabi=ilp32 \
3350
march=rv32imafc_zicsr_zifencei/mabi=ilp32f \
3451
march=rv32imafd_zicsr_zifencei/mabi=ilp32d \
52+
march=rv32e_zicsr_zifencei/mabi=ilp32e \
3553
march=rv32em_zicsr_zifencei/mabi=ilp32e \
3654
march=rv32emc_zicsr_zifencei/mabi=ilp32e \
55+
march=rv64i_zicsr_zifencei/mabi=lp64 \
3756
march=rv64imac_zicsr_zifencei/mabi=lp64 \
3857
march=rv64imafdc_zicsr_zifencei/mabi=lp64d \
3958
march=rv64imafd_zicsr_zifencei/mabi=lp64d \
@@ -43,12 +62,25 @@ march=rv64imafd_zicsr_zifencei/mabi=lp64d/mcmodel=medany
4362

4463
# Multilib alternate mapping
4564
MULTILIB_REUSE = \
65+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32ia_zicsr_zifencei/mabi.ilp32 \
66+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32iac_zicsr_zifencei/mabi.ilp32 \
67+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32ic_zicsr_zifencei/mabi.ilp32 \
68+
march.rv32im_zicsr_zifencei/mabi.ilp32=march.rv32ima_zicsr_zifencei/mabi.ilp32 \
4669
march.rv32im_zicsr_zifencei/mabi.ilp32=march.rv32imc_zicsr_zifencei/mabi.ilp32 \
4770
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32imafdc_zicsr_zifencei/mabi.ilp32d \
4871
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32g/mabi.ilp32d \
4972
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32gc/mabi.ilp32d \
73+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32ea_zicsr_zifencei/mabi.ilp32e \
74+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32eac_zicsr_zifencei/mabi.ilp32e \
75+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32ec_zicsr_zifencei/mabi.ilp32e \
5076
march.rv32em_zicsr_zifencei/mabi.ilp32e=march.rv32ema_zicsr_zifencei/mabi.ilp32e \
5177
march.rv32emc_zicsr_zifencei/mabi.ilp32e=march.rv32emac_zicsr_zifencei/mabi.ilp32e \
78+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64im_zicsr_zifencei/mabi.lp64 \
79+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ima_zicsr_zifencei/mabi.lp64 \
80+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64imc_zicsr_zifencei/mabi.lp64 \
81+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ia_zicsr_zifencei/mabi.lp64 \
82+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64iac_zicsr_zifencei/mabi.lp64 \
83+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ic_zicsr_zifencei/mabi.lp64 \
5284
march.rv64imafdc_zicsr_zifencei/mabi.lp64d=march.rv64gc/mabi.lp64d \
5385
march.rv64imafd_zicsr_zifencei/mabi.lp64d=march.rv64g/mabi.lp64d
5486

0 commit comments

Comments
 (0)