From 7b4f7681140e940f8f4d1ac8980260c2c6189ced Mon Sep 17 00:00:00 2001 From: SChernykh Date: Tue, 29 Sep 2020 21:22:11 +0200 Subject: [PATCH] RandomX: optimized soft AES code Unrolled loop was 5-10% slower depending on CPU. --- src/crypto/randomx/aes_hash.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/crypto/randomx/aes_hash.cpp b/src/crypto/randomx/aes_hash.cpp index 274a9d4c..eed82960 100644 --- a/src/crypto/randomx/aes_hash.cpp +++ b/src/crypto/randomx/aes_hash.cpp @@ -270,19 +270,22 @@ void hashAndFillAes1Rx4(void *scratchpad, size_t scratchpadSize, void *hash, voi rx_prefetch_t0(prefetchPtr); rx_prefetch_t0(prefetchPtr + 64); + + scratchpadPtr += 128; + prefetchPtr += 128; + break; + default: HASH_STATE(0); FILL_STATE(0); rx_prefetch_t0(prefetchPtr); - HASH_STATE(1); - FILL_STATE(1); - rx_prefetch_t0(prefetchPtr + 64); - } + scratchpadPtr += 64; + prefetchPtr += 64; - scratchpadPtr += 128; - prefetchPtr += 128; + break; + } } prefetchPtr = (const char*) scratchpad; scratchpadEnd += PREFETCH_DISTANCE;