diff --git a/src/Mem_win.cpp b/src/Mem_win.cpp index 94ad8e06..81c3ceb6 100644 --- a/src/Mem_win.cpp +++ b/src/Mem_win.cpp @@ -159,7 +159,7 @@ void Mem::allocate(ScratchPadMem& scratchPadMem, bool useHugePages) return; } - scratchPadMem.size = std::max(scratchPadMem.size, static_cast(MEMORY)); + scratchPadMem.size = std::max(scratchPadMem.size + scratchPadMem.size % MEMORY, static_cast(MEMORY)); scratchPadMem.memory = static_cast(VirtualAlloc(nullptr, scratchPadMem.size, MEM_COMMIT | MEM_RESERVE | MEM_LARGE_PAGES, PAGE_READWRITE)); if (scratchPadMem.memory) { diff --git a/src/crypto/CryptoNight_arm.h b/src/crypto/CryptoNight_arm.h index 6c3b2fd7..881308cf 100644 --- a/src/crypto/CryptoNight_arm.h +++ b/src/crypto/CryptoNight_arm.h @@ -1159,7 +1159,7 @@ public: ((int64_t*) &l[idx & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx = (~d) ^ q; } else { idx = d ^ q; @@ -1913,7 +1913,7 @@ public: ((int64_t*) &l0[idx0 & MASK])[0] = n0 ^ q0; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx0 = (~d0) ^ q0; } else { idx0 = d0 ^ q0; @@ -1940,7 +1940,7 @@ public: ((int64_t*) &l1[idx1 & MASK])[0] = n1 ^ q1; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx1 = (~d1) ^ q1; } else { idx1 = d1 ^ q1; @@ -2997,7 +2997,7 @@ public: ((int64_t*) &l0[idx0 & MASK])[0] = n0 ^ q0; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx0 = (~d0) ^ q0; } else { idx0 = d0 ^ q0; @@ -3024,7 +3024,7 @@ public: ((int64_t*) &l1[idx1 & MASK])[0] = n1 ^ q1; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx1 = (~d1) ^ q1; } else { idx1 = d1 ^ q1; @@ -3052,7 +3052,7 @@ public: ((int64_t*) &l2[idx2 & MASK])[0] = n2 ^ q2; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx2 = (~d2) ^ q2; } else { idx2 = d2 ^ q2; diff --git a/src/crypto/CryptoNight_x86.h b/src/crypto/CryptoNight_x86.h index cbe970e7..d7415988 100644 --- a/src/crypto/CryptoNight_x86.h +++ b/src/crypto/CryptoNight_x86.h @@ -1399,7 +1399,7 @@ public: ((int64_t*)&l[idx & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx = (~d) ^ q; } else { idx = d ^ q; @@ -2312,7 +2312,7 @@ public: ((int64_t*)&l0[idx[0] & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx[0] = (~d) ^ q; } else { idx[0] = d ^ q; @@ -2340,7 +2340,7 @@ public: ((int64_t*)&l1[idx[1] & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx[1] = (~d) ^ q; } else { idx[1] = d ^ q; @@ -3418,7 +3418,7 @@ public: ((int64_t*)&l0[idx[0] & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx[0] = (~d) ^ q; } else { idx[0] = d ^ q; @@ -3444,7 +3444,7 @@ public: ((int64_t*)&l1[idx[1] & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx[1] = (~d) ^ q; } else { idx[1] = d ^ q; @@ -3470,7 +3470,7 @@ public: ((int64_t*)&l2[idx[2] & MASK])[0] = n ^ q; - if (VARIANT == POW_XHV) { + if (VARIANT == POW_XHV || VARIANT == POW_XFH) { idx[2] = (~d) ^ q; } else { idx[2] = d ^ q; diff --git a/src/crypto/asm/win/cn_main_loop_win_gcc.S b/src/crypto/asm/win/cn_main_loop_win_gcc.S index ace49b54..a101a8cb 100644 --- a/src/crypto/asm/win/cn_main_loop_win_gcc.S +++ b/src/crypto/asm/win/cn_main_loop_win_gcc.S @@ -34,7 +34,7 @@ .global FN_PREFIX(cnv2_main_loop_zelerius_bulldozer_asm) .global FN_PREFIX(cnv2_double_main_loop_zelerius_sandybridge_asm) -.global FN_PREFIX(cnv2_main_loop_rwz_allr_asm) +.global FN_PREFIX(cnv2_main_loop_rwz_all_asm) .global FN_PREFIX(cnv2_double_main_loop_rwz_all_asm) .global FN_PREFIX(cnv1_main_loop_soft_aes_sandybridge_asm) @@ -175,8 +175,8 @@ FN_PREFIX(cnv2_double_main_loop_zelerius_sandybridge_asm): ret 0 ALIGN 64 -FN_PREFIX(cnv2_main_loop_rwz_allr_asm): - #include "../cnv2_main_loop_rwz_allr.inc" +FN_PREFIX(cnv2_main_loop_rwz_all_asm): + #include "../cnv2_main_loop_rwz_all.inc" ret 0 ALIGN 64