diff --git a/cmake/cc.cmake b/cmake/cc.cmake index 6189a0a922..ccd7fc5bda 100644 --- a/cmake/cc.cmake +++ b/cmake/cc.cmake @@ -391,6 +391,30 @@ if (${CORE} STREQUAL PPCG4) endif () endif () + +if ((${CORE} STREQUAL RISCV64_ZVL128B) OR (${CORE} STREQUAL RISCV64_ZVL256B)) + set (RISCV64_OPT "rv64imafdcv") + if (BUILD_BFLOAT16) + set (RISCV64_OPT "${RISCV64_OPT}_zvfbfwma") + endif() + if (BUILD_HFLOAT16) + set (RISCV64_OPT "${RISCV64_OPT}_zvfh_zfh") + endif() + if (${CORE} STREQUAL RISCV64_ZVL256B) + set (CCOMMON_OPT "${CCOMMON_OPT} -march=${RISCV64_OPT}_zvl256b -mabi=lp64d") + endif() + if (${CORE} STREQUAL RISCV64_ZVL128B) + set (CCOMMON_OPT "${CCOMMON_OPT} -march=${RISCV64_OPT}_zvl128b -mabi=lp64d") + endif() +endif() +if (${CORE} STREQUAL RISCV64_GENERIC) + set (CCOMMON_OPT "${CCOMMON_OPT} -march=rv64imafdc -mabi=lp64d") +endif() +if (${CORE} STREQUAL x280) + set (CCOMMON_OPT "${CCOMMON_OPT} -march=rv64imafdcv_zba_zbb_zfh_zvl512b -mabi=lp64d") +endif() + + if (NOT DYNAMIC_ARCH) if (HAVE_AVX2) set (CCOMMON_OPT "${CCOMMON_OPT} -mavx2") diff --git a/cmake/system.cmake b/cmake/system.cmake index 8dded3c215..f5f8952fbb 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -381,6 +381,28 @@ if (${TARGET} STREQUAL NEOVERSEV1) endif() endif() + if ((${TARGET} STREQUAL RISCV64_ZVL128B) OR (${TARGET} STREQUAL RISCV64_ZVL256B)) + set (RISCV64_OPT "rv64imafdcv") + if (BUILD_BFLOAT16) + set (RISCV64_OPT "${RISCV64_OPT}_zvfbfwma") + endif() + if (BUILD_HFLOAT16) + set (RISCV64_OPT "${RISCV64_OPT}_zvfh_zfh") + endif() + if (${TARGET} STREQUAL RISCV64_ZVL256B) + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=${RISCV64_OPT}_zvl256b -mabi=lp64d") + endif() + if (${TARGET} STREQUAL RISCV64_ZVL128B) + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=${RISCV64_OPT}_zvl128b -mabi=lp64d") + endif() + endif() + if (${TARGET} STREQUAL RISCV64_GENERIC) + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=rv64imafdc -mabi=lp64d") + endif() + if (${TARGET} STREQUAL x280) + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=rv64imafdcv_zba_zbb_zfh_zvl512b -mabi=lp64d") + endif() + endif() if (DEFINED BINARY)