Skip to content

Commit 05d7f7e

Browse files
committed
scripts: llvm: Add RV32I multi-libs
This commit adds the following "common" RV32I multi-lib variants, based on the list of the GCC RV32I multi-libs (gcc/config/riscv/t-zephyr): rv32i_zicsr_zifencei/ilp32 rv32im_zicsr_zifencei/ilp32 rv32im_zicsr_zifencei_zba_zbb_zbc_zbs/ilp32 rv32imac_zicsr_zifencei/ilp32 rv32imafc_zicsr_zifencei/ilp32f rv32imfc_zicsr_zifencei/ilp32f rv32imafd_zicsr_zifencei/ilp32d rv32if_zicsr_zifencei/ilp32f Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
1 parent 84e784e commit 05d7f7e

File tree

2 files changed

+145
-2
lines changed

2 files changed

+145
-2
lines changed

scripts/llvm/CMakeLists.txt

Lines changed: 114 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1769,9 +1769,121 @@ add_library_variants_for_cpu(
17691769
# RISC-V multilibs
17701770
## RV32I
17711771
add_library_variants_for_cpu(
1772-
rv32i_zicsr_zifencei
1772+
rv32i_zicsr_zifencei_ilp32
17731773
COMPILE_FLAGS "-march=rv32i_zicsr_zifencei -mabi=ilp32"
1774-
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf"
1774+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_zicsr2p0_zifencei2p0 -mabi=ilp32"
1775+
PICOLIBC_BUILD_TYPE "release"
1776+
QEMU_MACHINE "none"
1777+
QEMU_CPU "rv32"
1778+
QEMU_PARAMS "-m 1G"
1779+
BOOT_FLASH_ADDRESS 0x00000000
1780+
BOOT_FLASH_SIZE 0x1000
1781+
FLASH_ADDRESS 0x20000000
1782+
FLASH_SIZE 0x1000000
1783+
RAM_ADDRESS 0x21000000
1784+
RAM_SIZE 0x1000000
1785+
STACK_SIZE 4K
1786+
)
1787+
add_library_variants_for_cpu(
1788+
rv32im_zicsr_zifencei_ilp32
1789+
COMPILE_FLAGS "-march=rv32im_zicsr_zifencei -mabi=ilp32"
1790+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=ilp32"
1791+
PICOLIBC_BUILD_TYPE "release"
1792+
QEMU_MACHINE "none"
1793+
QEMU_CPU "rv32"
1794+
QEMU_PARAMS "-m 1G"
1795+
BOOT_FLASH_ADDRESS 0x00000000
1796+
BOOT_FLASH_SIZE 0x1000
1797+
FLASH_ADDRESS 0x20000000
1798+
FLASH_SIZE 0x1000000
1799+
RAM_ADDRESS 0x21000000
1800+
RAM_SIZE 0x1000000
1801+
STACK_SIZE 4K
1802+
)
1803+
add_library_variants_for_cpu(
1804+
rv32im_zicsr_zifencei_zba_zbb_zbc_zbs_ilp32
1805+
COMPILE_FLAGS "-march=rv32im_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=ilp32"
1806+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=ilp32"
1807+
PICOLIBC_BUILD_TYPE "release"
1808+
QEMU_MACHINE "none"
1809+
QEMU_CPU "rv32"
1810+
QEMU_PARAMS "-m 1G"
1811+
BOOT_FLASH_ADDRESS 0x00000000
1812+
BOOT_FLASH_SIZE 0x1000
1813+
FLASH_ADDRESS 0x20000000
1814+
FLASH_SIZE 0x1000000
1815+
RAM_ADDRESS 0x21000000
1816+
RAM_SIZE 0x1000000
1817+
STACK_SIZE 4K
1818+
)
1819+
add_library_variants_for_cpu(
1820+
rv32imac_zicsr_zifencei_ilp32
1821+
COMPILE_FLAGS "-march=rv32imac_zicsr_zifencei -mabi=ilp32"
1822+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=ilp32"
1823+
PICOLIBC_BUILD_TYPE "release"
1824+
QEMU_MACHINE "none"
1825+
QEMU_CPU "rv32"
1826+
QEMU_PARAMS "-m 1G"
1827+
BOOT_FLASH_ADDRESS 0x00000000
1828+
BOOT_FLASH_SIZE 0x1000
1829+
FLASH_ADDRESS 0x20000000
1830+
FLASH_SIZE 0x1000000
1831+
RAM_ADDRESS 0x21000000
1832+
RAM_SIZE 0x1000000
1833+
STACK_SIZE 4K
1834+
)
1835+
add_library_variants_for_cpu(
1836+
rv32imafc_zicsr_zifencei_ilp32f
1837+
COMPILE_FLAGS "-march=rv32imafc_zicsr_zifencei -mabi=ilp32f"
1838+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_a2p1_f2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=ilp32f"
1839+
PICOLIBC_BUILD_TYPE "release"
1840+
QEMU_MACHINE "none"
1841+
QEMU_CPU "rv32"
1842+
QEMU_PARAMS "-m 1G"
1843+
BOOT_FLASH_ADDRESS 0x00000000
1844+
BOOT_FLASH_SIZE 0x1000
1845+
FLASH_ADDRESS 0x20000000
1846+
FLASH_SIZE 0x1000000
1847+
RAM_ADDRESS 0x21000000
1848+
RAM_SIZE 0x1000000
1849+
STACK_SIZE 4K
1850+
)
1851+
add_library_variants_for_cpu(
1852+
rv32imfc_zicsr_zifencei_ilp32f
1853+
COMPILE_FLAGS "-march=rv32imfc_zicsr_zifencei -mabi=ilp32f"
1854+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_f2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=ilp32f"
1855+
PICOLIBC_BUILD_TYPE "release"
1856+
QEMU_MACHINE "none"
1857+
QEMU_CPU "rv32"
1858+
QEMU_PARAMS "-m 1G"
1859+
BOOT_FLASH_ADDRESS 0x00000000
1860+
BOOT_FLASH_SIZE 0x1000
1861+
FLASH_ADDRESS 0x20000000
1862+
FLASH_SIZE 0x1000000
1863+
RAM_ADDRESS 0x21000000
1864+
RAM_SIZE 0x1000000
1865+
STACK_SIZE 4K
1866+
)
1867+
add_library_variants_for_cpu(
1868+
rv32imafd_zicsr_zifencei_ilp32d
1869+
COMPILE_FLAGS "-march=rv32imafd_zicsr_zifencei -mabi=ilp32d"
1870+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=ilp32d"
1871+
PICOLIBC_BUILD_TYPE "release"
1872+
QEMU_MACHINE "none"
1873+
QEMU_CPU "rv32"
1874+
QEMU_PARAMS "-m 1G"
1875+
BOOT_FLASH_ADDRESS 0x00000000
1876+
BOOT_FLASH_SIZE 0x1000
1877+
FLASH_ADDRESS 0x20000000
1878+
FLASH_SIZE 0x1000000
1879+
RAM_ADDRESS 0x21000000
1880+
RAM_SIZE 0x1000000
1881+
STACK_SIZE 4K
1882+
)
1883+
add_library_variants_for_cpu(
1884+
rv32if_zicsr_zifencei_ilp32f
1885+
COMPILE_FLAGS "-march=rv32if_zicsr_zifencei -mabi=ilp32f"
1886+
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32i2p1_f2p2_zicsr2p0_zifencei2p0 -mabi=ilp32f"
17751887
PICOLIBC_BUILD_TYPE "release"
17761888
QEMU_MACHINE "none"
17771889
QEMU_CPU "rv32"

scripts/llvm/test/multilib/rv32i.test

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32i_zicsr_zifencei -mabi=ilp32 | FileCheck %s --check-prefix=RV32I_ZICSR_ZIFENCEI_ILP32
2+
# RV32I_ZICSR_ZIFENCEI_ILP32: riscv32-none-elf/rv32i_zicsr_zifencei_ilp32_exn_rtti{{$}}
3+
# RV32I_ZICSR_ZIFENCEI_ILP32-EMPTY:
4+
5+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32im_zicsr_zifencei -mabi=ilp32 | FileCheck %s --check-prefix=RV32IM_ZICSR_ZIFENCEI_ILP32
6+
# RV32IM_ZICSR_ZIFENCEI_ILP32: riscv32-none-elf/rv32im_zicsr_zifencei_ilp32_exn_rtti{{$}}
7+
# RV32IM_ZICSR_ZIFENCEI_ILP32-EMPTY:
8+
9+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32im_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=ilp32 | FileCheck %s --check-prefix=RV32IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_ILP32
10+
# RV32IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_ILP32: riscv32-none-elf/rv32im_zicsr_zifencei_zba_zbb_zbc_zbs_ilp32_exn_rtti{{$}}
11+
# RV32IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_ILP32-EMPTY:
12+
13+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 | FileCheck %s --check-prefix=RV32IMAC_ZICSR_ZIFENCEI_ILP32
14+
# RV32IMAC_ZICSR_ZIFENCEI_ILP32: riscv32-none-elf/rv32imac_zicsr_zifencei_ilp32_exn_rtti{{$}}
15+
# RV32IMAC_ZICSR_ZIFENCEI_ILP32-EMPTY:
16+
17+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32imafc_zicsr_zifencei -mabi=ilp32f | FileCheck %s --check-prefix=RV32IMAFC_ZICSR_ZIFENCEI_ILP32F
18+
# RV32IMAFC_ZICSR_ZIFENCEI_ILP32F: riscv32-none-elf/rv32imafc_zicsr_zifencei_ilp32f_exn_rtti{{$}}
19+
# RV32IMAFC_ZICSR_ZIFENCEI_ILP32F-EMPTY:
20+
21+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32imfc_zicsr_zifencei -mabi=ilp32f | FileCheck %s --check-prefix=RV32IMFC_ZICSR_ZIFENCEI_ILP32F
22+
# RV32IMFC_ZICSR_ZIFENCEI_ILP32F: riscv32-none-elf/rv32imfc_zicsr_zifencei_ilp32f_exn_rtti{{$}}
23+
# RV32IMFC_ZICSR_ZIFENCEI_ILP32F-EMPTY:
24+
25+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32imafd_zicsr_zifencei -mabi=ilp32d | FileCheck %s --check-prefix=RV32IMAFD_ZICSR_ZIFENCEI_ILP32D
26+
# RV32IMAFD_ZICSR_ZIFENCEI_ILP32D: riscv32-none-elf/rv32imafd_zicsr_zifencei_ilp32d_exn_rtti{{$}}
27+
# RV32IMAFD_ZICSR_ZIFENCEI_ILP32D-EMPTY:
28+
29+
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32if_zicsr_zifencei -mabi=ilp32f | FileCheck %s --check-prefix=RV32IF_ZICSR_ZIFENCEI_ILP32F
30+
# RV32IF_ZICSR_ZIFENCEI_ILP32F: riscv32-none-elf/rv32if_zicsr_zifencei_ilp32f_exn_rtti{{$}}
31+
# RV32IF_ZICSR_ZIFENCEI_ILP32F-EMPTY:

0 commit comments

Comments
 (0)