Skip to content

Commit e294e6b

Browse files
committed
scripts: llvm: Add RV64I multi-libs
This commit adds the following "common" RV64I multi-lib variants, based on the list of the GCC RV64I multi-libs (gcc/config/riscv/t-zephyr): rv64i_zicsr_zifencei/lp64 rv64im_zicsr_zifencei/lp64 rv64im_zicsr_zifencei_zba_zbb_zbc_zbs/lp64 rv64imac_zicsr_zifencei/lp64 rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs/lp64 rv64imafdc_zicsr_zifencei/lp64d rv64imafd_zicsr_zifencei/lp64d rv64imfc_zicsr_zifencei/lp64f rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs/lp64f Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
1 parent a0632c2 commit e294e6b

File tree

2 files changed

+165
-2
lines changed

2 files changed

+165
-2
lines changed

scripts/llvm/CMakeLists.txt

Lines changed: 130 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1995,9 +1995,137 @@ add_library_variants_for_cpu(
19951995
)
19961996
## RV64I
19971997
add_library_variants_for_cpu(
1998-
rv64i_zicsr_zifencei
1998+
rv64i_zicsr_zifencei_lp64
19991999
COMPILE_FLAGS "-march=rv64i_zicsr_zifencei -mabi=lp64 -mcmodel=medany"
2000-
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf"
2000+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_zicsr2p0_zifencei2p0 -mabi=lp64"
2001+
PICOLIBC_BUILD_TYPE "release"
2002+
QEMU_MACHINE "none"
2003+
QEMU_CPU "rv64"
2004+
QEMU_PARAMS "-m 1G"
2005+
BOOT_FLASH_ADDRESS 0x00000000
2006+
BOOT_FLASH_SIZE 0x1000
2007+
FLASH_ADDRESS 0x20000000
2008+
FLASH_SIZE 0x1000000
2009+
RAM_ADDRESS 0x21000000
2010+
RAM_SIZE 0x1000000
2011+
STACK_SIZE 4K
2012+
)
2013+
add_library_variants_for_cpu(
2014+
rv64im_zicsr_zifencei_lp64
2015+
COMPILE_FLAGS "-march=rv64im_zicsr_zifencei -mabi=lp64 -mcmodel=medany"
2016+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=lp64"
2017+
PICOLIBC_BUILD_TYPE "release"
2018+
QEMU_MACHINE "none"
2019+
QEMU_CPU "rv64"
2020+
QEMU_PARAMS "-m 1G"
2021+
BOOT_FLASH_ADDRESS 0x00000000
2022+
BOOT_FLASH_SIZE 0x1000
2023+
FLASH_ADDRESS 0x20000000
2024+
FLASH_SIZE 0x1000000
2025+
RAM_ADDRESS 0x21000000
2026+
RAM_SIZE 0x1000000
2027+
STACK_SIZE 4K
2028+
)
2029+
add_library_variants_for_cpu(
2030+
rv64im_zicsr_zifencei_zba_zbb_zbc_zbs_lp64
2031+
COMPILE_FLAGS "-march=rv64im_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64 -mcmodel=medany"
2032+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=lp64"
2033+
PICOLIBC_BUILD_TYPE "release"
2034+
QEMU_MACHINE "none"
2035+
QEMU_CPU "rv64"
2036+
QEMU_PARAMS "-m 1G"
2037+
BOOT_FLASH_ADDRESS 0x00000000
2038+
BOOT_FLASH_SIZE 0x1000
2039+
FLASH_ADDRESS 0x20000000
2040+
FLASH_SIZE 0x1000000
2041+
RAM_ADDRESS 0x21000000
2042+
RAM_SIZE 0x1000000
2043+
STACK_SIZE 4K
2044+
)
2045+
add_library_variants_for_cpu(
2046+
rv64imac_zicsr_zifencei_lp64
2047+
COMPILE_FLAGS "-march=rv64imac_zicsr_zifencei -mabi=lp64 -mcmodel=medany"
2048+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=lp64"
2049+
PICOLIBC_BUILD_TYPE "release"
2050+
QEMU_MACHINE "none"
2051+
QEMU_CPU "rv64"
2052+
QEMU_PARAMS "-m 1G"
2053+
BOOT_FLASH_ADDRESS 0x00000000
2054+
BOOT_FLASH_SIZE 0x1000
2055+
FLASH_ADDRESS 0x20000000
2056+
FLASH_SIZE 0x1000000
2057+
RAM_ADDRESS 0x21000000
2058+
RAM_SIZE 0x1000000
2059+
STACK_SIZE 4K
2060+
)
2061+
add_library_variants_for_cpu(
2062+
rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs_lp64
2063+
COMPILE_FLAGS "-march=rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64 -mcmodel=medany"
2064+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=lp64"
2065+
PICOLIBC_BUILD_TYPE "release"
2066+
QEMU_MACHINE "none"
2067+
QEMU_CPU "rv64"
2068+
QEMU_PARAMS "-m 1G"
2069+
BOOT_FLASH_ADDRESS 0x00000000
2070+
BOOT_FLASH_SIZE 0x1000
2071+
FLASH_ADDRESS 0x20000000
2072+
FLASH_SIZE 0x1000000
2073+
RAM_ADDRESS 0x21000000
2074+
RAM_SIZE 0x1000000
2075+
STACK_SIZE 4K
2076+
)
2077+
add_library_variants_for_cpu(
2078+
rv64imafdc_zicsr_zifencei_lp64d
2079+
COMPILE_FLAGS "-march=rv64imafdc_zicsr_zifencei -mabi=lp64d -mcmodel=medany"
2080+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=lp64d"
2081+
PICOLIBC_BUILD_TYPE "release"
2082+
QEMU_MACHINE "none"
2083+
QEMU_CPU "rv64"
2084+
QEMU_PARAMS "-m 1G"
2085+
BOOT_FLASH_ADDRESS 0x00000000
2086+
BOOT_FLASH_SIZE 0x1000
2087+
FLASH_ADDRESS 0x20000000
2088+
FLASH_SIZE 0x1000000
2089+
RAM_ADDRESS 0x21000000
2090+
RAM_SIZE 0x1000000
2091+
STACK_SIZE 4K
2092+
)
2093+
add_library_variants_for_cpu(
2094+
rv64imafd_zicsr_zifencei_lp64d
2095+
COMPILE_FLAGS "-march=rv64imafd_zicsr_zifencei -mabi=lp64d -mcmodel=medany"
2096+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=lp64d"
2097+
PICOLIBC_BUILD_TYPE "release"
2098+
QEMU_MACHINE "none"
2099+
QEMU_CPU "rv64"
2100+
QEMU_PARAMS "-m 1G"
2101+
BOOT_FLASH_ADDRESS 0x00000000
2102+
BOOT_FLASH_SIZE 0x1000
2103+
FLASH_ADDRESS 0x20000000
2104+
FLASH_SIZE 0x1000000
2105+
RAM_ADDRESS 0x21000000
2106+
RAM_SIZE 0x1000000
2107+
STACK_SIZE 4K
2108+
)
2109+
add_library_variants_for_cpu(
2110+
rv64imfc_zicsr_zifencei_lp64f
2111+
COMPILE_FLAGS "-march=rv64imfc_zicsr_zifencei -mabi=lp64f -mcmodel=medany"
2112+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_f2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0 -mabi=lp64f"
2113+
PICOLIBC_BUILD_TYPE "release"
2114+
QEMU_MACHINE "none"
2115+
QEMU_CPU "rv64"
2116+
QEMU_PARAMS "-m 1G"
2117+
BOOT_FLASH_ADDRESS 0x00000000
2118+
BOOT_FLASH_SIZE 0x1000
2119+
FLASH_ADDRESS 0x20000000
2120+
FLASH_SIZE 0x1000000
2121+
RAM_ADDRESS 0x21000000
2122+
RAM_SIZE 0x1000000
2123+
STACK_SIZE 4K
2124+
)
2125+
add_library_variants_for_cpu(
2126+
rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f
2127+
COMPILE_FLAGS "-march=rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64f -mcmodel=medany"
2128+
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_f2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=lp64f"
20012129
PICOLIBC_BUILD_TYPE "release"
20022130
QEMU_MACHINE "none"
20032131
QEMU_CPU "rv64"

scripts/llvm/test/multilib/rv64i.test

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64i_zicsr_zifencei -mabi=lp64 | FileCheck %s --check-prefix=RV64I_ZICSR_ZIFENCEI_LP64
2+
# RV64I_ZICSR_ZIFENCEI_LP64: riscv64-none-elf/rv64i_zicsr_zifencei_lp64_exn_rtti{{$}}
3+
# RV64I_ZICSR_ZIFENCEI_LP64-EMPTY:
4+
5+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64im_zicsr_zifencei -mabi=lp64 | FileCheck %s --check-prefix=RV64IM_ZICSR_ZIFENCEI_LP64
6+
# RV64IM_ZICSR_ZIFENCEI_LP64: riscv64-none-elf/rv64im_zicsr_zifencei_lp64_exn_rtti{{$}}
7+
# RV64IM_ZICSR_ZIFENCEI_LP64-EMPTY:
8+
9+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64im_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64 | FileCheck %s --check-prefix=RV64IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64
10+
# RV64IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64: riscv64-none-elf/rv64im_zicsr_zifencei_zba_zbb_zbc_zbs_lp64_exn_rtti{{$}}
11+
# RV64IM_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64-EMPTY:
12+
13+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imac_zicsr_zifencei -mabi=lp64 | FileCheck %s --check-prefix=RV64IMAC_ZICSR_ZIFENCEI_LP64
14+
# RV64IMAC_ZICSR_ZIFENCEI_LP64: riscv64-none-elf/rv64imac_zicsr_zifencei_lp64_exn_rtti{{$}}
15+
# RV64IMAC_ZICSR_ZIFENCEI_LP64-EMPTY:
16+
17+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64 | FileCheck %s --check-prefix=RV64IMAC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64
18+
# RV64IMAC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64: riscv64-none-elf/rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs_lp64_exn_rtti{{$}}
19+
# RV64IMAC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64-EMPTY:
20+
21+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imafdc_zicsr_zifencei -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFDC_ZICSR_ZIFENCEI_LP64D
22+
# RV64IMAFDC_ZICSR_ZIFENCEI_LP64D: riscv64-none-elf/rv64imafdc_zicsr_zifencei_lp64d_exn_rtti{{$}}
23+
# RV64IMAFDC_ZICSR_ZIFENCEI_LP64D-EMPTY:
24+
25+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imafd_zicsr_zifencei -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFD_ZICSR_ZIFENCEI_LP64D
26+
# RV64IMAFD_ZICSR_ZIFENCEI_LP64D: riscv64-none-elf/rv64imafd_zicsr_zifencei_lp64d_exn_rtti{{$}}
27+
# RV64IMAFD_ZICSR_ZIFENCEI_LP64D-EMPTY:
28+
29+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imfc_zicsr_zifencei -mabi=lp64f | FileCheck %s --check-prefix=RV64IMFC_ZICSR_ZIFENCEI_LP64F
30+
# RV64IMFC_ZICSR_ZIFENCEI_LP64F: riscv64-none-elf/rv64imfc_zicsr_zifencei_lp64f_exn_rtti{{$}}
31+
# RV64IMFC_ZICSR_ZIFENCEI_LP64F-EMPTY:
32+
33+
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64f | FileCheck %s --check-prefix=RV64IMFC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64F
34+
# RV64IMFC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64F: riscv64-none-elf/rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f_exn_rtti{{$}}
35+
# RV64IMFC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64F-EMPTY:

0 commit comments

Comments
 (0)