diff --git a/src/backend/cpu/CpuConfig_gen.h b/src/backend/cpu/CpuConfig_gen.h index a7319eea..6412ae31 100644 --- a/src/backend/cpu/CpuConfig_gen.h +++ b/src/backend/cpu/CpuConfig_gen.h @@ -127,6 +127,10 @@ size_t inline generate(Threads &threads, uint32 count += threads.move("rx/wow", std::move(wow)); } + if (!threads.isExist(Algorithm::DEFYX)) { + count += generate("defyx", threads, Algorithm::DEFYX, limit); + } + count += generate("rx", threads, Algorithm::RX_0, limit); return count; diff --git a/src/crypto/randomx/randomx.cpp b/src/crypto/randomx/randomx.cpp index 8b1cfe2c..b0ae171e 100644 --- a/src/crypto/randomx/randomx.cpp +++ b/src/crypto/randomx/randomx.cpp @@ -198,11 +198,10 @@ void RandomX_ConfigurationBase::Apply() #if defined(_M_X64) || defined(__x86_64__) *(uint32_t*)(codeShhPrefetchTweaked + 3) = ArgonMemory * 16 - 1; - // Not needed right now because all variants use default dataset base size - //const uint32_t DatasetBaseMask = DatasetBaseSize - RANDOMX_DATASET_ITEM_SIZE; - //*(uint32_t*)(codeReadDatasetTweaked + 9) = DatasetBaseMask; - //*(uint32_t*)(codeReadDatasetTweaked + 24) = DatasetBaseMask; - //*(uint32_t*)(codeReadDatasetLightSshInitTweaked + 59) = DatasetBaseMask; + const uint32_t DatasetBaseMask = DatasetBaseSize - RANDOMX_DATASET_ITEM_SIZE; + *(uint32_t*)(codeReadDatasetTweaked + 7) = DatasetBaseMask; + *(uint32_t*)(codeReadDatasetTweaked + 23) = DatasetBaseMask; + *(uint32_t*)(codeReadDatasetLightSshInitTweaked + 59) = DatasetBaseMask; *(uint32_t*)(codePrefetchScratchpadTweaked + 4) = ScratchpadL3Mask64_Calculated; *(uint32_t*)(codePrefetchScratchpadTweaked + 18) = ScratchpadL3Mask64_Calculated;