From dd8d85e70f7620e305a0746bb93622ffe6cc0c8b Mon Sep 17 00:00:00 2001 From: psychocrypt <psychocryptHPC@gmail.com> Date: Mon, 11 Mar 2019 00:54:34 +0100 Subject: [PATCH] fix cn_gpu rounding mode selection If cryptonight_gpu is used in the dev pool and a cryptonight_v8 derived algorithm than cryptonight_gpu will create wrong results if v8 was running as non ASM version. --- xmrstak/backend/cpu/crypto/cryptonight_aesni.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xmrstak/backend/cpu/crypto/cryptonight_aesni.h b/xmrstak/backend/cpu/crypto/cryptonight_aesni.h index 2a8705b..cec5e6b 100644 --- a/xmrstak/backend/cpu/crypto/cryptonight_aesni.h +++ b/xmrstak/backend/cpu/crypto/cryptonight_aesni.h @@ -744,7 +744,7 @@ inline void cryptonight_conceal_tweak(__m128i& cx, __m128& conc_var) __m128i bx1; \ __m128i division_result_xmm; \ __m128 conc_var; \ - if(ALGO == cryptonight_conceal || ALGO == cryptonight_gpu) \ + if(ALGO == cryptonight_conceal) \ {\ set_float_rounding_mode_nearest(); \ conc_var = _mm_setzero_ps(); \ @@ -1306,6 +1306,7 @@ struct Cryptonight_hash_gpu template<xmrstak_algo_id ALGO, bool SOFT_AES, bool PREFETCH> static void hash(const void* input, size_t len, void* output, cryptonight_ctx** ctx, const xmrstak_algo& algo) { + set_float_rounding_mode_nearest(); keccak((const uint8_t *)input, len, ctx[0]->hash_state, 200); cn_explode_scratchpad_gpu<PREFETCH, ALGO>(ctx[0]->hash_state, ctx[0]->long_state, algo); -- GitLab