mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-06 15:42:38 -05:00
RISC-V: test for instruction extensions
This commit is contained in:
@@ -47,6 +47,38 @@ if (XMRIG_RISCV)
|
|||||||
set(WITH_SSE4_1 OFF)
|
set(WITH_SSE4_1 OFF)
|
||||||
set(WITH_AVX2 OFF)
|
set(WITH_AVX2 OFF)
|
||||||
set(WITH_VAES OFF)
|
set(WITH_VAES OFF)
|
||||||
|
|
||||||
|
# default build uses the RV64GC baseline
|
||||||
|
set(RVARCH "rv64gc")
|
||||||
|
|
||||||
|
# for native builds, enable Zba and Zbb if supported by the CPU
|
||||||
|
if(ARCH STREQUAL "native")
|
||||||
|
enable_language(ASM)
|
||||||
|
|
||||||
|
try_run(RANDOMX_ZBA_RUN_FAIL
|
||||||
|
RANDOMX_ZBA_COMPILE_OK
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/randomx/tests/riscv64_zba.s
|
||||||
|
COMPILE_DEFINITIONS "-march=rv64gc_zba")
|
||||||
|
|
||||||
|
if (RANDOMX_ZBA_COMPILE_OK AND NOT RANDOMX_ZBA_RUN_FAIL)
|
||||||
|
set(RVARCH "${RVARCH}_zba")
|
||||||
|
message(STATUS "RISC-V zba extension detected")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
try_run(RANDOMX_ZBB_RUN_FAIL
|
||||||
|
RANDOMX_ZBB_COMPILE_OK
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/randomx/tests/riscv64_zbb.s
|
||||||
|
COMPILE_DEFINITIONS "-march=rv64gc_zbb")
|
||||||
|
|
||||||
|
if (RANDOMX_ZBB_COMPILE_OK AND NOT RANDOMX_ZBB_RUN_FAIL)
|
||||||
|
set(RVARCH "${RVARCH}_zbb")
|
||||||
|
message(STATUS "RISC-V zbb extension detected")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "Using -march=${RVARCH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(-DRAPIDJSON_WRITE_DEFAULT_FLAGS=6) # rapidjson::kWriteNanAndInfFlag | rapidjson::kWriteNanAndInfNullFlag
|
add_definitions(-DRAPIDJSON_WRITE_DEFAULT_FLAGS=6) # rapidjson::kWriteNanAndInfFlag | rapidjson::kWriteNanAndInfNullFlag
|
||||||
|
|||||||
@@ -31,10 +31,8 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=neon -flax-vector-conversions")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=neon -flax-vector-conversions")
|
||||||
add_definitions(-DHAVE_ROTR)
|
add_definitions(-DHAVE_ROTR)
|
||||||
elseif (XMRIG_RISCV)
|
elseif (XMRIG_RISCV)
|
||||||
# RISC-V baseline: rv64gc (RV64IMAFD + Zicsr + Zifencei)
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=${RVARCH}")
|
||||||
# Use rv64gc for broad compatibility, extensions will be detected at runtime
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=${RVARCH}")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gc")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gc")
|
|
||||||
|
|
||||||
add_definitions(-DHAVE_ROTR)
|
add_definitions(-DHAVE_ROTR)
|
||||||
else()
|
else()
|
||||||
@@ -86,10 +84,8 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
add_definitions(-DHAVE_ROTR)
|
add_definitions(-DHAVE_ROTR)
|
||||||
elseif (XMRIG_RISCV)
|
elseif (XMRIG_RISCV)
|
||||||
# RISC-V baseline: rv64gc (RV64IMAFD + Zicsr + Zifencei)
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=${RVARCH}")
|
||||||
# Use rv64gc for broad compatibility, extensions will be detected at runtime
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=${RVARCH}")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gc")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gc")
|
|
||||||
|
|
||||||
add_definitions(-DHAVE_ROTR)
|
add_definitions(-DHAVE_ROTR)
|
||||||
else()
|
else()
|
||||||
|
|||||||
9
src/crypto/randomx/tests/riscv64_zba.s
Normal file
9
src/crypto/randomx/tests/riscv64_zba.s
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/* RISC-V - test if the Zba extension is present */
|
||||||
|
|
||||||
|
.text
|
||||||
|
.global main
|
||||||
|
|
||||||
|
main:
|
||||||
|
sh1add x6, x6, x7
|
||||||
|
li x10, 0
|
||||||
|
ret
|
||||||
9
src/crypto/randomx/tests/riscv64_zbb.s
Normal file
9
src/crypto/randomx/tests/riscv64_zbb.s
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/* RISC-V - test if the Zbb extension is present */
|
||||||
|
|
||||||
|
.text
|
||||||
|
.global main
|
||||||
|
|
||||||
|
main:
|
||||||
|
ror x6, x6, x7
|
||||||
|
li x10, 0
|
||||||
|
ret
|
||||||
Reference in New Issue
Block a user