Don't use RandomX JIT if WITH_ASM=OFF

Because RandomX JIT use asm code
This commit is contained in:
SChernykh 2021-04-02 10:05:46 +02:00
parent eb40f07552
commit ec608bbd05
4 changed files with 10 additions and 10 deletions

View file

@ -42,20 +42,20 @@ if (WITH_RANDOMX)
src/crypto/rx/RxVm.cpp src/crypto/rx/RxVm.cpp
) )
if (CMAKE_C_COMPILER_ID MATCHES MSVC) if (WITH_ASM AND CMAKE_C_COMPILER_ID MATCHES MSVC)
enable_language(ASM_MASM) enable_language(ASM_MASM)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/randomx/jit_compiler_x86_static.asm src/crypto/randomx/jit_compiler_x86_static.asm
src/crypto/randomx/jit_compiler_x86.cpp src/crypto/randomx/jit_compiler_x86.cpp
) )
elseif (NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) elseif (WITH_ASM AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/randomx/jit_compiler_x86_static.S src/crypto/randomx/jit_compiler_x86_static.S
src/crypto/randomx/jit_compiler_x86.cpp src/crypto/randomx/jit_compiler_x86.cpp
) )
# cheat because cmake and ccache hate each other # cheat because cmake and ccache hate each other
set_property(SOURCE src/crypto/randomx/jit_compiler_x86_static.S PROPERTY LANGUAGE C) set_property(SOURCE src/crypto/randomx/jit_compiler_x86_static.S PROPERTY LANGUAGE C)
elseif (XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) elseif (WITH_ASM AND XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/randomx/jit_compiler_a64_static.S src/crypto/randomx/jit_compiler_a64_static.S
src/crypto/randomx/jit_compiler_a64.cpp src/crypto/randomx/jit_compiler_a64.cpp

View file

@ -103,11 +103,11 @@ namespace randomx {
#endif #endif
#endif #endif
#if defined(_M_X64) || defined(__x86_64__) #if defined(XMRIG_FEATURE_ASM) && (defined(_M_X64) || defined(__x86_64__))
#define RANDOMX_HAVE_COMPILER 1 #define RANDOMX_HAVE_COMPILER 1
class JitCompilerX86; class JitCompilerX86;
using JitCompiler = JitCompilerX86; using JitCompiler = JitCompilerX86;
#elif defined(__aarch64__) #elif defined(XMRIG_FEATURE_ASM) && defined(__aarch64__)
#define RANDOMX_HAVE_COMPILER 1 #define RANDOMX_HAVE_COMPILER 1
class JitCompilerA64; class JitCompilerA64;
using JitCompiler = JitCompilerA64; using JitCompiler = JitCompilerA64;

View file

@ -28,9 +28,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#pragma once #pragma once
#if defined(_M_X64) || defined(__x86_64__) #if defined(XMRIG_FEATURE_ASM) && (defined(_M_X64) || defined(__x86_64__))
#include "crypto/randomx/jit_compiler_x86.hpp" #include "crypto/randomx/jit_compiler_x86.hpp"
#elif defined(__aarch64__) #elif defined(XMRIG_FEATURE_ASM) && defined(__aarch64__)
#include "crypto/randomx/jit_compiler_a64.hpp" #include "crypto/randomx/jit_compiler_a64.hpp"
#else #else
#include "crypto/randomx/jit_compiler_fallback.hpp" #include "crypto/randomx/jit_compiler_fallback.hpp"

View file

@ -148,7 +148,7 @@ RandomX_ConfigurationBase::RandomX_ConfigurationBase()
fillAes4Rx4_Key[6] = rx_set_int_vec_i128(0xf63befa7, 0x2ba9660a, 0xf765a38b, 0xf273c9e7); fillAes4Rx4_Key[6] = rx_set_int_vec_i128(0xf63befa7, 0x2ba9660a, 0xf765a38b, 0xf273c9e7);
fillAes4Rx4_Key[7] = rx_set_int_vec_i128(0xc0b0762d, 0x0c06d1fd, 0x915839de, 0x7a7cd609); fillAes4Rx4_Key[7] = rx_set_int_vec_i128(0xc0b0762d, 0x0c06d1fd, 0x915839de, 0x7a7cd609);
# if defined(_M_X64) || defined(__x86_64__) # if defined(XMRIG_FEATURE_ASM) && (defined(_M_X64) || defined(__x86_64__))
// Workaround for Visual Studio placing trampoline in debug builds. // Workaround for Visual Studio placing trampoline in debug builds.
auto addr = [](void (*func)()) { auto addr = [](void (*func)()) {
const uint8_t* p = reinterpret_cast<const uint8_t*>(func); const uint8_t* p = reinterpret_cast<const uint8_t*>(func);
@ -214,7 +214,7 @@ void RandomX_ConfigurationBase::Apply()
ScratchpadL3Mask_Calculated = (((ScratchpadL3_Size / sizeof(uint64_t)) - 1) * 8); ScratchpadL3Mask_Calculated = (((ScratchpadL3_Size / sizeof(uint64_t)) - 1) * 8);
ScratchpadL3Mask64_Calculated = ((ScratchpadL3_Size / sizeof(uint64_t)) / 8 - 1) * 64; ScratchpadL3Mask64_Calculated = ((ScratchpadL3_Size / sizeof(uint64_t)) / 8 - 1) * 64;
#if defined(_M_X64) || defined(__x86_64__) #if defined(XMRIG_FEATURE_ASM) && (defined(_M_X64) || defined(__x86_64__))
*(uint32_t*)(codeShhPrefetchTweaked + 3) = ArgonMemory * 16 - 1; *(uint32_t*)(codeShhPrefetchTweaked + 3) = ArgonMemory * 16 - 1;
// Not needed right now because all variants use default dataset base size // Not needed right now because all variants use default dataset base size
//const uint32_t DatasetBaseMask = DatasetBaseSize - RANDOMX_DATASET_ITEM_SIZE; //const uint32_t DatasetBaseMask = DatasetBaseSize - RANDOMX_DATASET_ITEM_SIZE;
@ -262,7 +262,7 @@ typedef void(randomx::JitCompilerX86::* InstructionGeneratorX86_2)(const randomx
memcpy(randomx::JitCompilerX86::engine + k, &p, sizeof(p)); \ memcpy(randomx::JitCompilerX86::engine + k, &p, sizeof(p)); \
} while (0) } while (0)
#elif defined(XMRIG_ARMv8) #elif defined(XMRIG_FEATURE_ASM) && defined(XMRIG_ARMv8)
Log2_ScratchpadL1 = Log2(ScratchpadL1_Size); Log2_ScratchpadL1 = Log2(ScratchpadL1_Size);
Log2_ScratchpadL2 = Log2(ScratchpadL2_Size); Log2_ScratchpadL2 = Log2(ScratchpadL2_Size);