|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
/*
|
|
|
|
|
Copyright (c) 2018-2019, tevador <tevador@gmail.com>
|
|
|
|
|
Copyright (c) 2019, Wownero Inc., a Monero Enterprise Alliance partner company
|
|
|
|
|
|
|
|
|
|
All rights reserved.
|
|
|
|
|
|
|
|
|
@ -38,7 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
#define RANDOMX_ARGON_LANES 1
|
|
|
|
|
|
|
|
|
|
//Argon2d salt
|
|
|
|
|
#define RANDOMX_ARGON_SALT "RandomX\x03"
|
|
|
|
|
#define RANDOMX_ARGON_SALT "RandomWOW\x01"
|
|
|
|
|
|
|
|
|
|
//Number of random Cache accesses per Dataset item. Minimum is 2.
|
|
|
|
|
#define RANDOMX_CACHE_ACCESSES 8
|
|
|
|
@ -56,16 +57,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
#define RANDOMX_PROGRAM_SIZE 256
|
|
|
|
|
|
|
|
|
|
//Number of iterations during VM execution.
|
|
|
|
|
#define RANDOMX_PROGRAM_ITERATIONS 2048
|
|
|
|
|
#define RANDOMX_PROGRAM_ITERATIONS 1024
|
|
|
|
|
|
|
|
|
|
//Number of chained VM executions per hash.
|
|
|
|
|
#define RANDOMX_PROGRAM_COUNT 8
|
|
|
|
|
#define RANDOMX_PROGRAM_COUNT 16
|
|
|
|
|
|
|
|
|
|
//Scratchpad L3 size in bytes. Must be a power of 2.
|
|
|
|
|
#define RANDOMX_SCRATCHPAD_L3 2097152
|
|
|
|
|
#define RANDOMX_SCRATCHPAD_L3 1048576
|
|
|
|
|
|
|
|
|
|
//Scratchpad L2 size in bytes. Must be a power of two and less than or equal to RANDOMX_SCRATCHPAD_L3.
|
|
|
|
|
#define RANDOMX_SCRATCHPAD_L2 262144
|
|
|
|
|
#define RANDOMX_SCRATCHPAD_L2 131072
|
|
|
|
|
|
|
|
|
|
//Scratchpad L1 size in bytes. Must be a power of two (minimum 64) and less than or equal to RANDOMX_SCRATCHPAD_L2.
|
|
|
|
|
#define RANDOMX_SCRATCHPAD_L1 16384
|
|
|
|
@ -82,7 +83,7 @@ Total sum of frequencies must be 256
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//Integer instructions
|
|
|
|
|
#define RANDOMX_FREQ_IADD_RS 16
|
|
|
|
|
#define RANDOMX_FREQ_IADD_RS 25
|
|
|
|
|
#define RANDOMX_FREQ_IADD_M 7
|
|
|
|
|
#define RANDOMX_FREQ_ISUB_R 16
|
|
|
|
|
#define RANDOMX_FREQ_ISUB_M 7
|
|
|
|
@ -96,23 +97,23 @@ Total sum of frequencies must be 256
|
|
|
|
|
#define RANDOMX_FREQ_INEG_R 2
|
|
|
|
|
#define RANDOMX_FREQ_IXOR_R 15
|
|
|
|
|
#define RANDOMX_FREQ_IXOR_M 5
|
|
|
|
|
#define RANDOMX_FREQ_IROR_R 8
|
|
|
|
|
#define RANDOMX_FREQ_IROL_R 2
|
|
|
|
|
#define RANDOMX_FREQ_IROR_R 10
|
|
|
|
|
#define RANDOMX_FREQ_IROL_R 0
|
|
|
|
|
#define RANDOMX_FREQ_ISWAP_R 4
|
|
|
|
|
|
|
|
|
|
//Floating point instructions
|
|
|
|
|
#define RANDOMX_FREQ_FSWAP_R 4
|
|
|
|
|
#define RANDOMX_FREQ_FADD_R 16
|
|
|
|
|
#define RANDOMX_FREQ_FSWAP_R 8
|
|
|
|
|
#define RANDOMX_FREQ_FADD_R 20
|
|
|
|
|
#define RANDOMX_FREQ_FADD_M 5
|
|
|
|
|
#define RANDOMX_FREQ_FSUB_R 16
|
|
|
|
|
#define RANDOMX_FREQ_FSUB_R 20
|
|
|
|
|
#define RANDOMX_FREQ_FSUB_M 5
|
|
|
|
|
#define RANDOMX_FREQ_FSCAL_R 6
|
|
|
|
|
#define RANDOMX_FREQ_FMUL_R 32
|
|
|
|
|
#define RANDOMX_FREQ_FMUL_R 20
|
|
|
|
|
#define RANDOMX_FREQ_FDIV_M 4
|
|
|
|
|
#define RANDOMX_FREQ_FSQRT_R 6
|
|
|
|
|
|
|
|
|
|
//Control instructions
|
|
|
|
|
#define RANDOMX_FREQ_CBRANCH 25
|
|
|
|
|
#define RANDOMX_FREQ_CBRANCH 16
|
|
|
|
|
#define RANDOMX_FREQ_CFROUND 1
|
|
|
|
|
|
|
|
|
|
//Store instruction
|
|
|
|
|