XMRig
3 years ago
No known key found for this signature in database
GPG Key ID: 446A53638BE94409
6 changed files with
33 additions and
38 deletions
-
cmake/cpu.cmake
-
cmake/flags.cmake
-
cmake/os.cmake
-
src/backend/cpu/platform/BasicCpuInfo_arm.cpp
-
src/crypto/randomx/randomx.cpp
-
src/crypto/randomx/randomx.h
|
|
@ -1,9 +1,16 @@ |
|
|
|
if (CMAKE_SIZEOF_VOID_P EQUAL 8) |
|
|
|
set(XMRIG_64_BIT ON) |
|
|
|
add_definitions(-DXMRIG_64_BIT) |
|
|
|
else() |
|
|
|
set(XMRIG_64_BIT OFF) |
|
|
|
endif() |
|
|
|
|
|
|
|
if (NOT CMAKE_SYSTEM_PROCESSOR) |
|
|
|
message(WARNING "CMAKE_SYSTEM_PROCESSOR not defined") |
|
|
|
endif() |
|
|
|
|
|
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64)$" AND CMAKE_SIZEOF_VOID_P EQUAL 8) |
|
|
|
add_definitions(/DRAPIDJSON_SSE2) |
|
|
|
if (XMRIG_64_BIT AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64)$") |
|
|
|
add_definitions(-DRAPIDJSON_SSE2) |
|
|
|
else() |
|
|
|
set(WITH_SSE4_1 OFF) |
|
|
|
endif() |
|
|
@ -17,31 +24,25 @@ if (NOT ARM_TARGET) |
|
|
|
endif() |
|
|
|
|
|
|
|
if (ARM_TARGET AND ARM_TARGET GREATER 6) |
|
|
|
set(XMRIG_ARM ON) |
|
|
|
add_definitions(/DXMRIG_ARM) |
|
|
|
set(XMRIG_ARM ON) |
|
|
|
add_definitions(-DXMRIG_ARM=${ARM_TARGET}) |
|
|
|
|
|
|
|
message(STATUS "Use ARM_TARGET=${ARM_TARGET} (${CMAKE_SYSTEM_PROCESSOR})") |
|
|
|
|
|
|
|
include(CheckCXXCompilerFlag) |
|
|
|
|
|
|
|
if (ARM_TARGET EQUAL 8) |
|
|
|
set(XMRIG_ARMv8 ON) |
|
|
|
add_definitions(/DXMRIG_ARMv8) |
|
|
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG(-march=armv8-a+crypto XMRIG_ARM_CRYPTO) |
|
|
|
|
|
|
|
if (XMRIG_ARM_CRYPTO) |
|
|
|
add_definitions(/DXMRIG_ARM_CRYPTO) |
|
|
|
add_definitions(-DXMRIG_ARM_CRYPTO) |
|
|
|
set(ARM8_CXX_FLAGS "-march=armv8-a+crypto") |
|
|
|
else() |
|
|
|
set(ARM8_CXX_FLAGS "-march=armv8-a") |
|
|
|
endif() |
|
|
|
elseif (ARM_TARGET EQUAL 7) |
|
|
|
set(XMRIG_ARMv7 ON) |
|
|
|
add_definitions(/DXMRIG_ARMv7) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
if (WITH_SSE4_1) |
|
|
|
add_definitions(/DXMRIG_FEATURE_SSE4_1) |
|
|
|
add_definitions(-DXMRIG_FEATURE_SSE4_1) |
|
|
|
endif() |
|
|
|
|
|
@ -22,10 +22,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU) |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-strict-aliasing -Wno-class-memaccess") |
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -s") |
|
|
|
|
|
|
|
if (XMRIG_ARMv8) |
|
|
|
if (ARM_TARGET EQUAL 8) |
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}") |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS} -flax-vector-conversions") |
|
|
|
elseif (XMRIG_ARMv7) |
|
|
|
elseif (ARM_TARGET EQUAL 7) |
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon") |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -flax-vector-conversions") |
|
|
|
else() |
|
|
@ -80,10 +80,10 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-missing-braces") |
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -funroll-loops -fmerge-all-constants") |
|
|
|
|
|
|
|
if (XMRIG_ARMv8) |
|
|
|
if (ARM_TARGET EQUAL 8) |
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}") |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS}") |
|
|
|
elseif (XMRIG_ARMv7) |
|
|
|
elseif (ARM_TARGET EQUAL 7) |
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}") |
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}") |
|
|
|
else() |
|
|
|
|
|
@ -1,7 +1,3 @@ |
|
|
|
if (CMAKE_SIZEOF_VOID_P EQUAL 8) |
|
|
|
add_definitions(/DXMRIG_64_BIT) |
|
|
|
endif() |
|
|
|
|
|
|
|
if (WIN32) |
|
|
|
set(XMRIG_OS_WIN ON) |
|
|
|
elseif (APPLE) |
|
|
@ -26,32 +22,31 @@ endif() |
|
|
|
|
|
|
|
|
|
|
|
if (XMRIG_OS_WIN) |
|
|
|
add_definitions(/DWIN32) |
|
|
|
add_definitions(/DXMRIG_OS_WIN) |
|
|
|
add_definitions(-DWIN32 -DXMRIG_OS_WIN) |
|
|
|
elseif(XMRIG_OS_APPLE) |
|
|
|
add_definitions(/DXMRIG_OS_APPLE) |
|
|
|
add_definitions(-DXMRIG_OS_APPLE) |
|
|
|
|
|
|
|
if (XMRIG_OS_IOS) |
|
|
|
add_definitions(/DXMRIG_OS_IOS) |
|
|
|
add_definitions(-DXMRIG_OS_IOS) |
|
|
|
else() |
|
|
|
add_definitions(/DXMRIG_OS_MACOS) |
|
|
|
add_definitions(-DXMRIG_OS_MACOS) |
|
|
|
endif() |
|
|
|
|
|
|
|
if (XMRIG_ARM) |
|
|
|
set(WITH_SECURE_JIT ON) |
|
|
|
endif() |
|
|
|
elseif(XMRIG_OS_UNIX) |
|
|
|
add_definitions(/DXMRIG_OS_UNIX) |
|
|
|
add_definitions(-DXMRIG_OS_UNIX) |
|
|
|
|
|
|
|
if (XMRIG_OS_ANDROID) |
|
|
|
add_definitions(/DXMRIG_OS_ANDROID) |
|
|
|
add_definitions(-DXMRIG_OS_ANDROID) |
|
|
|
elseif (XMRIG_OS_LINUX) |
|
|
|
add_definitions(/DXMRIG_OS_LINUX) |
|
|
|
add_definitions(-DXMRIG_OS_LINUX) |
|
|
|
elseif (XMRIG_OS_FREEBSD) |
|
|
|
add_definitions(/DXMRIG_OS_FREEBSD) |
|
|
|
add_definitions(-DXMRIG_OS_FREEBSD) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
if (WITH_SECURE_JIT) |
|
|
|
add_definitions(/DXMRIG_SECURE_JIT) |
|
|
|
add_definitions(-DXMRIG_SECURE_JIT) |
|
|
|
endif() |
|
|
|
|
|
@ -16,7 +16,6 @@ |
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
#include "base/tools/String.h" |
|
|
|
|
|
|
|
|
|
|
@ -63,7 +62,7 @@ xmrig::BasicCpuInfo::BasicCpuInfo() : |
|
|
|
m_units[i] = i; |
|
|
|
} |
|
|
|
|
|
|
|
# ifdef XMRIG_ARMv8 |
|
|
|
# if (XMRIG_ARM == 8) |
|
|
|
memcpy(m_brand, "ARMv8", 5); |
|
|
|
# else |
|
|
|
memcpy(m_brand, "ARMv7", 5); |
|
|
@ -128,7 +127,7 @@ rapidjson::Value xmrig::BasicCpuInfo::toJSON(rapidjson::Document &doc) const |
|
|
|
out.AddMember("msr", "none", allocator); |
|
|
|
out.AddMember("assembly", "none", allocator); |
|
|
|
|
|
|
|
# ifdef XMRIG_ARMv8 |
|
|
|
# if (XMRIG_ARM == 8) |
|
|
|
out.AddMember("arch", "aarch64", allocator); |
|
|
|
# else |
|
|
|
out.AddMember("arch", "aarch32", allocator); |
|
|
|
|
|
@ -37,7 +37,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
|
|
|
|
|
#if defined(_M_X64) || defined(__x86_64__) |
|
|
|
#include "crypto/randomx/jit_compiler_x86_static.hpp" |
|
|
|
#elif defined(XMRIG_ARMv8) |
|
|
|
#elif (XMRIG_ARM == 8) |
|
|
|
#include "crypto/randomx/jit_compiler_a64_static.hpp" |
|
|
|
#endif |
|
|
|
|
|
|
@ -180,7 +180,7 @@ RandomX_ConfigurationBase::RandomX_ConfigurationBase() |
|
|
|
# endif |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef XMRIG_ARMv8 |
|
|
|
#if (XMRIG_ARM == 8) |
|
|
|
static uint32_t Log2(size_t value) { return (value > 1) ? (Log2(value / 2) + 1) : 0; } |
|
|
|
#endif |
|
|
|
|
|
|
@ -254,7 +254,7 @@ typedef void(randomx::JitCompilerX86::* InstructionGeneratorX86_2)(const randomx |
|
|
|
memcpy(randomx::JitCompilerX86::engine + k, &p, sizeof(p)); \ |
|
|
|
} while (0) |
|
|
|
|
|
|
|
#elif defined(XMRIG_ARMv8) |
|
|
|
#elif (XMRIG_ARM == 8) |
|
|
|
|
|
|
|
Log2_ScratchpadL1 = Log2(ScratchpadL1_Size); |
|
|
|
Log2_ScratchpadL2 = Log2(ScratchpadL2_Size); |
|
|
|
|
|
@ -132,13 +132,13 @@ struct RandomX_ConfigurationBase |
|
|
|
uint32_t ScratchpadL3Mask_Calculated; |
|
|
|
uint32_t ScratchpadL3Mask64_Calculated; |
|
|
|
|
|
|
|
#if defined(XMRIG_ARMv8) |
|
|
|
# if (XMRIG_ARM == 8) |
|
|
|
uint32_t Log2_ScratchpadL1; |
|
|
|
uint32_t Log2_ScratchpadL2; |
|
|
|
uint32_t Log2_ScratchpadL3; |
|
|
|
uint32_t Log2_DatasetBaseSize; |
|
|
|
uint32_t Log2_CacheSize; |
|
|
|
#endif |
|
|
|
# endif |
|
|
|
}; |
|
|
|
|
|
|
|
struct RandomX_ConfigurationMonero : public RandomX_ConfigurationBase {}; |
|
|
|