diff --git a/CMakeLists.txt b/CMakeLists.txt index b51eb2ae4838d6dd4f4a0a3aa97e788cd0843e17..eec03df9bf141df439a2054b221295baafe78fd6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -448,18 +448,18 @@ endif() if(CMAKE_C_COMPILER_ID MATCHES "MSVC") # asm optimized monero v8 code enable_language(ASM_MASM) - set_property(SOURCE "xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.asm" PROPERTY ASM_MASM) + set_property(SOURCE "xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.asm" PROPERTY ASM_MASM) add_library(xmr-stak-asm STATIC - "xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.asm" + "xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.asm" ) else() # asm optimized monero v8 code enable_language(ASM) - set_property(SOURCE "xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.S" PROPERTY C) + set_property(SOURCE "xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.S" PROPERTY C) add_library(xmr-stak-asm STATIC - "xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.S" + "xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.S" ) endif() diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.S b/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.S deleted file mode 100644 index 736dac7de0234af9601f3a184ed52478ddf9289b..0000000000000000000000000000000000000000 --- a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.S +++ /dev/null @@ -1,27 +0,0 @@ -#define ALIGN .align -.intel_syntax noprefix -#ifdef __APPLE__ -# define FN_PREFIX(fn) _ ## fn -.text -#else -# define FN_PREFIX(fn) fn -.section .text -#endif -.global FN_PREFIX(cryptonigh_v8_mainloop_ivybridge_asm) -.global FN_PREFIX(cryptonigh_v8_mainloop_ryzen_asm) - -ALIGN 8 -FN_PREFIX(cryptonigh_v8_mainloop_ivybridge_asm): - sub rsp, 48 - mov rcx, rdi - #include "cryptonigh_v8_main_loop_ivybridge_linux.inc" - add rsp, 48 - ret 0 - -ALIGN 8 -FN_PREFIX(cryptonigh_v8_mainloop_ryzen_asm): - sub rsp, 48 - mov rcx, rdi - #include "cryptonigh_v8_main_loop_ryzen_linux.inc" - add rsp, 48 - ret 0 diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.asm b/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.asm deleted file mode 100644 index 7f2d6a584af330a5ae0dfa59f265b0c8323010b0..0000000000000000000000000000000000000000 --- a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop.asm +++ /dev/null @@ -1,18 +0,0 @@ -_TEXT_CNV8_MAINLOOP SEGMENT PAGE READ EXECUTE -PUBLIC cryptonigh_v8_mainloop_ivybridge_asm -PUBLIC cryptonigh_v8_mainloop_ryzen_asm - -ALIGN 8 -cryptonigh_v8_mainloop_ivybridge_asm PROC - INCLUDE cryptonigh_v8_main_loop_ivybridge_win64.inc - ret 0 -cryptonigh_v8_mainloop_ivybridge_asm ENDP - -ALIGN 8 -cryptonigh_v8_mainloop_ryzen_asm PROC - INCLUDE cryptonigh_v8_main_loop_ryzen_win64.inc - ret 0 -cryptonigh_v8_mainloop_ryzen_asm ENDP - -_TEXT_CNV8_MAINLOOP ENDS -END diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.S b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.S new file mode 100644 index 0000000000000000000000000000000000000000..3aa8994ddce271ba4930a1497957149dd6007fe6 --- /dev/null +++ b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.S @@ -0,0 +1,27 @@ +#define ALIGN .align +.intel_syntax noprefix +#ifdef __APPLE__ +# define FN_PREFIX(fn) _ ## fn +.text +#else +# define FN_PREFIX(fn) fn +.section .text +#endif +.global FN_PREFIX(cryptonight_v8_mainloop_ivybridge_asm) +.global FN_PREFIX(cryptonight_v8_mainloop_ryzen_asm) + +ALIGN 8 +FN_PREFIX(cryptonight_v8_mainloop_ivybridge_asm): + sub rsp, 48 + mov rcx, rdi + #include "cryptonight_v8_main_loop_ivybridge_linux.inc" + add rsp, 48 + ret 0 + +ALIGN 8 +FN_PREFIX(cryptonight_v8_mainloop_ryzen_asm): + sub rsp, 48 + mov rcx, rdi + #include "cryptonight_v8_main_loop_ryzen_linux.inc" + add rsp, 48 + ret 0 diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.asm b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.asm new file mode 100644 index 0000000000000000000000000000000000000000..3c2bba619045348ed6af14a7393ec14853860d68 --- /dev/null +++ b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop.asm @@ -0,0 +1,18 @@ +_TEXT_CNV8_MAINLOOP SEGMENT PAGE READ EXECUTE +PUBLIC cryptonight_v8_mainloop_ivybridge_asm +PUBLIC cryptonight_v8_mainloop_ryzen_asm + +ALIGN 8 +cryptonight_v8_mainloop_ivybridge_asm PROC + INCLUDE cryptonight_v8_main_loop_ivybridge_win64.inc + ret 0 +cryptonight_v8_mainloop_ivybridge_asm ENDP + +ALIGN 8 +cryptonight_v8_mainloop_ryzen_asm PROC + INCLUDE cryptonight_v8_main_loop_ryzen_win64.inc + ret 0 +cryptonight_v8_mainloop_ryzen_asm ENDP + +_TEXT_CNV8_MAINLOOP ENDS +END diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ivybridge_linux.inc b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ivybridge_linux.inc similarity index 100% rename from xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ivybridge_linux.inc rename to xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ivybridge_linux.inc diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ivybridge_win64.inc b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ivybridge_win64.inc similarity index 100% rename from xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ivybridge_win64.inc rename to xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ivybridge_win64.inc diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ryzen_linux.inc b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ryzen_linux.inc similarity index 100% rename from xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ryzen_linux.inc rename to xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ryzen_linux.inc diff --git a/xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ryzen_win64.inc b/xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ryzen_win64.inc similarity index 100% rename from xmrstak/backend/cpu/crypto/asm/cryptonigh_v8_main_loop_ryzen_win64.inc rename to xmrstak/backend/cpu/crypto/asm/cryptonight_v8_main_loop_ryzen_win64.inc diff --git a/xmrstak/backend/cpu/crypto/cryptonight_aesni.h b/xmrstak/backend/cpu/crypto/cryptonight_aesni.h index 0838cfac4567fda10035b7ae1b75fc5e48a1ebfd..844e4c045ef28c61d8c69292b3a87374e1b49e2c 100644 --- a/xmrstak/backend/cpu/crypto/cryptonight_aesni.h +++ b/xmrstak/backend/cpu/crypto/cryptonight_aesni.h @@ -923,8 +923,8 @@ struct Cryptonight_hash<5> } }; -extern "C" void cryptonigh_v8_mainloop_ivybridge_asm(cryptonight_ctx* ctx0); -extern "C" void cryptonigh_v8_mainloop_ryzen_asm(cryptonight_ctx* ctx0); +extern "C" void cryptonight_v8_mainloop_ivybridge_asm(cryptonight_ctx* ctx0); +extern "C" void cryptonight_v8_mainloop_ryzen_asm(cryptonight_ctx* ctx0); template<xmrstak_algo ALGO, int asm_version> void cryptonight_hash_v2_asm(const void* input, size_t len, void* output, cryptonight_ctx** ctx) @@ -935,9 +935,9 @@ void cryptonight_hash_v2_asm(const void* input, size_t len, void* output, crypto cn_explode_scratchpad<MEM, false, false, ALGO>((__m128i*)ctx[0]->hash_state, (__m128i*)ctx[0]->long_state); if (asm_version == 1) - cryptonigh_v8_mainloop_ivybridge_asm(ctx[0]); + cryptonight_v8_mainloop_ivybridge_asm(ctx[0]); else - cryptonigh_v8_mainloop_ryzen_asm(ctx[0]); + cryptonight_v8_mainloop_ryzen_asm(ctx[0]); cn_implode_scratchpad<MEM, false, false, ALGO>((__m128i*)ctx[0]->long_state, (__m128i*)ctx[0]->hash_state); keccakf((uint64_t*)ctx[0]->hash_state, 24);