Skip to content

Commit 00de2fe

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 <[email protected]>
1 parent 6c9643f commit 00de2fe

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

gcc/config/riscv/t-zephyr

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
# Multilib target configurations
2-
MULTILIB_SRC_ARCH = rv32im_zicsr_zifencei
2+
MULTILIB_SRC_ARCH = rv32i_zicsr_zifencei
3+
MULTILIB_SRC_ARCH += rv32im_zicsr_zifencei
34
MULTILIB_SRC_ARCH += rv32imc_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
89
MULTILIB_SRC_ARCH += rv32g
910
MULTILIB_SRC_ARCH += rv32gc
11+
MULTILIB_SRC_ARCH += rv32e_zicsr_zifencei
1012
MULTILIB_SRC_ARCH += rv32em_zicsr_zifencei
1113
MULTILIB_SRC_ARCH += rv32ema_zicsr_zifencei
1214
MULTILIB_SRC_ARCH += rv32emc_zicsr_zifencei
1315
MULTILIB_SRC_ARCH += rv32emac_zicsr_zifencei
16+
MULTILIB_SRC_ARCH += rv64i_zicsr_zifencei
1417
MULTILIB_SRC_ARCH += rv64imac_zicsr_zifencei
1518
MULTILIB_SRC_ARCH += rv64imafdc_zicsr_zifencei
1619
MULTILIB_SRC_ARCH += rv64gc
@@ -28,12 +31,15 @@ MULTILIB_SRC_MCMODEL = medany
2831

2932
# Multilib build configurations
3033
MULTILIB_REQUIRED = \
34+
march=rv32i_zicsr_zifencei/mabi=ilp32 \
3135
march=rv32im_zicsr_zifencei/mabi=ilp32 \
3236
march=rv32imac_zicsr_zifencei/mabi=ilp32 \
3337
march=rv32imafc_zicsr_zifencei/mabi=ilp32f \
3438
march=rv32imafd_zicsr_zifencei/mabi=ilp32d \
39+
march=rv32e_zicsr_zifencei/mabi=ilp32e \
3540
march=rv32em_zicsr_zifencei/mabi=ilp32e \
3641
march=rv32emc_zicsr_zifencei/mabi=ilp32e \
42+
march=rv64i_zicsr_zifencei/mabi=lp64 \
3743
march=rv64imac_zicsr_zifencei/mabi=lp64 \
3844
march=rv64imafdc_zicsr_zifencei/mabi=lp64d \
3945
march=rv64imafd_zicsr_zifencei/mabi=lp64d \
@@ -43,12 +49,25 @@ march=rv64imafd_zicsr_zifencei/mabi=lp64d/mcmodel=medany
4349

4450
# Multilib alternate mapping
4551
MULTILIB_REUSE = \
52+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32ia_zicsr_zifencei/mabi.ilp32 \
53+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32iac_zicsr_zifencei/mabi.ilp32 \
54+
march.rv32i_zicsr_zifencei/mabi.ilp32=march.rv32ic_zicsr_zifencei/mabi.ilp32 \
55+
march.rv32im_zicsr_zifencei/mabi.ilp32=march.rv32ima_zicsr_zifencei/mabi.ilp32 \
4656
march.rv32im_zicsr_zifencei/mabi.ilp32=march.rv32imc_zicsr_zifencei/mabi.ilp32 \
4757
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32imafdc_zicsr_zifencei/mabi.ilp32d \
4858
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32g/mabi.ilp32d \
4959
march.rv32imafd_zicsr_zifencei/mabi.ilp32d=march.rv32gc/mabi.ilp32d \
60+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32ea_zicsr_zifencei/mabi.ilp32e \
61+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32eac_zicsr_zifencei/mabi.ilp32e \
62+
march.rv32e_zicsr_zifencei/mabi.ilp32e=march.rv32ec_zicsr_zifencei/mabi.ilp32e \
5063
march.rv32em_zicsr_zifencei/mabi.ilp32e=march.rv32ema_zicsr_zifencei/mabi.ilp32e \
5164
march.rv32emc_zicsr_zifencei/mabi.ilp32e=march.rv32emac_zicsr_zifencei/mabi.ilp32e \
65+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64im_zicsr_zifencei/mabi.lp64 \
66+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ima_zicsr_zifencei/mabi.lp64 \
67+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64imc_zicsr_zifencei/mabi.lp64 \
68+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ia_zicsr_zifencei/mabi.lp64 \
69+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64iac_zicsr_zifencei/mabi.lp64 \
70+
march.rv64i_zicsr_zifencei/mabi.lp64=march.rv64ic_zicsr_zifencei/mabi.lp64 \
5271
march.rv64imafdc_zicsr_zifencei/mabi.lp64d=march.rv64gc/mabi.lp64d \
5372
march.rv64imafd_zicsr_zifencei/mabi.lp64d=march.rv64g/mabi.lp64d
5473

0 commit comments

Comments
 (0)