|
| constexpr int32_t | randomx::superScalarHashOffset = RandomXCodeSize |
| const uint8_t * | randomx::codeLoopLoad = ADDR(randomx_program_loop_load) |
| const uint8_t * | randomx::codeProgamStart = ADDR(randomx_program_start) |
| const uint8_t * | randomx::codeReadDataset = ADDR(randomx_program_read_dataset) |
| const uint8_t * | randomx::codeReadDatasetLightSshInit = ADDR(randomx_program_read_dataset_sshash_init) |
| const uint8_t * | randomx::codeReadDatasetLightSshFin = ADDR(randomx_program_read_dataset_sshash_fin) |
| const uint8_t * | randomx::codeDatasetInit = ADDR(randomx_dataset_init) |
| const uint8_t * | randomx::codeLoopStore = ADDR(randomx_program_loop_store) |
| const uint8_t * | randomx::codeShhLoad = ADDR(randomx_sshash_load) |
| const uint8_t * | randomx::codeShhPrefetch = ADDR(randomx_sshash_prefetch) |
| const uint8_t * | randomx::codeShhEnd = ADDR(randomx_sshash_end) |
| const uint8_t * | randomx::codeShhInit = ADDR(randomx_sshash_init) |
| const int32_t | randomx::prologueSize = codeLoopBegin - codePrologue |
| const int32_t | randomx::loopLoadSize = codeProgamStart - codeLoopLoad |
| const int32_t | randomx::readDatasetSize = codeReadDatasetLightSshInit - codeReadDataset |
| const int32_t | randomx::readDatasetLightInitSize = codeReadDatasetLightSshFin - codeReadDatasetLightSshInit |
| const int32_t | randomx::readDatasetLightFinSize = codeLoopStore - codeReadDatasetLightSshFin |
| const int32_t | randomx::loopStoreSize = codeLoopEnd - codeLoopStore |
| const int32_t | randomx::datasetInitSize = codeEpilogue - codeDatasetInit |
| const int32_t | randomx::epilogueSize = codeShhLoad - codeEpilogue |
| const int32_t | randomx::codeSshLoadSize = codeShhPrefetch - codeShhLoad |
| const int32_t | randomx::codeSshPrefetchSize = codeShhEnd - codeShhPrefetch |
| const int32_t | randomx::codeSshInitSize = codeProgramEnd - codeShhInit |
| const int32_t | randomx::epilogueOffset = CodeSize - epilogueSize |
| static const uint8_t | randomx::REX_ADD_RR [] = { 0x4d, 0x03 } |
| static const uint8_t | randomx::REX_ADD_RM [] = { 0x4c, 0x03 } |
| static const uint8_t | randomx::REX_SUB_RR [] = { 0x4d, 0x2b } |
| static const uint8_t | randomx::REX_SUB_RM [] = { 0x4c, 0x2b } |
| static const uint8_t | randomx::REX_MOV_RR [] = { 0x41, 0x8b } |
| static const uint8_t | randomx::REX_MOV_RR64 [] = { 0x49, 0x8b } |
| static const uint8_t | randomx::REX_MOV_R64R [] = { 0x4c, 0x8b } |
| static const uint8_t | randomx::REX_IMUL_RR [] = { 0x4d, 0x0f, 0xaf } |
| static const uint8_t | randomx::REX_IMUL_RRI [] = { 0x4d, 0x69 } |
| static const uint8_t | randomx::REX_IMUL_RM [] = { 0x4c, 0x0f, 0xaf } |
| static const uint8_t | randomx::REX_MUL_R [] = { 0x49, 0xf7 } |
| static const uint8_t | randomx::REX_MUL_M [] = { 0x48, 0xf7 } |
| static const uint8_t | randomx::REX_81 [] = { 0x49, 0x81 } |
| static const uint8_t | randomx::AND_EAX_I = 0x25 |
| static const uint8_t | randomx::MOV_EAX_I = 0xb8 |
| static const uint8_t | randomx::MOV_RAX_I [] = { 0x48, 0xb8 } |
| static const uint8_t | randomx::MOV_RCX_I [] = { 0x48, 0xb9 } |
| static const uint8_t | randomx::REX_LEA [] = { 0x4f, 0x8d } |
| static const uint8_t | randomx::REX_MUL_MEM [] = { 0x48, 0xf7, 0x24, 0x0e } |
| static const uint8_t | randomx::REX_IMUL_MEM [] = { 0x48, 0xf7, 0x2c, 0x0e } |
| static const uint8_t | randomx::REX_SHR_RAX [] = { 0x48, 0xc1, 0xe8 } |
| static const uint8_t | randomx::RAX_ADD_SBB_1 [] = { 0x48, 0x83, 0xC0, 0x01, 0x48, 0x83, 0xD8, 0x00 } |
| static const uint8_t | randomx::MUL_RCX [] = { 0x48, 0xf7, 0xe1 } |
| static const uint8_t | randomx::REX_SHR_RDX [] = { 0x48, 0xc1, 0xea } |
| static const uint8_t | randomx::REX_SH [] = { 0x49, 0xc1 } |
| static const uint8_t | randomx::MOV_RCX_RAX_SAR_RCX_63 [] = { 0x48, 0x89, 0xc1, 0x48, 0xc1, 0xf9, 0x3f } |
| static const uint8_t | randomx::AND_ECX_I [] = { 0x81, 0xe1 } |
| static const uint8_t | randomx::ADD_RAX_RCX [] = { 0x48, 0x01, 0xC8 } |
| static const uint8_t | randomx::SAR_RAX_I8 [] = { 0x48, 0xC1, 0xF8 } |
| static const uint8_t | randomx::NEG_RAX [] = { 0x48, 0xF7, 0xD8 } |
| static const uint8_t | randomx::ADD_R_RAX [] = { 0x4C, 0x03 } |
| static const uint8_t | randomx::XOR_EAX_EAX [] = { 0x33, 0xC0 } |
| static const uint8_t | randomx::ADD_RDX_R [] = { 0x4c, 0x01 } |
| static const uint8_t | randomx::SUB_RDX_R [] = { 0x4c, 0x29 } |
| static const uint8_t | randomx::SAR_RDX_I8 [] = { 0x48, 0xC1, 0xFA } |
| static const uint8_t | randomx::TEST_RDX_RDX [] = { 0x48, 0x85, 0xD2 } |
| static const uint8_t | randomx::SETS_AL_ADD_RDX_RAX [] = { 0x0F, 0x98, 0xC0, 0x48, 0x03, 0xD0 } |
| static const uint8_t | randomx::REX_NEG [] = { 0x49, 0xF7 } |
| static const uint8_t | randomx::REX_XOR_RR [] = { 0x4D, 0x33 } |
| static const uint8_t | randomx::REX_XOR_RI [] = { 0x49, 0x81 } |
| static const uint8_t | randomx::REX_XOR_RM [] = { 0x4c, 0x33 } |
| static const uint8_t | randomx::REX_ROT_CL [] = { 0x49, 0xd3 } |
| static const uint8_t | randomx::REX_ROT_I8 [] = { 0x49, 0xc1 } |
| static const uint8_t | randomx::SHUFPD [] = { 0x66, 0x0f, 0xc6 } |
| static const uint8_t | randomx::REX_ADDPD [] = { 0x66, 0x41, 0x0f, 0x58 } |
| static const uint8_t | randomx::REX_CVTDQ2PD_XMM12 [] = { 0xf3, 0x44, 0x0f, 0xe6, 0x24, 0x06 } |
| static const uint8_t | randomx::REX_SUBPD [] = { 0x66, 0x41, 0x0f, 0x5c } |
| static const uint8_t | randomx::REX_XORPS [] = { 0x41, 0x0f, 0x57 } |
| static const uint8_t | randomx::REX_MULPD [] = { 0x66, 0x41, 0x0f, 0x59 } |
| static const uint8_t | randomx::REX_MAXPD [] = { 0x66, 0x41, 0x0f, 0x5f } |
| static const uint8_t | randomx::REX_DIVPD [] = { 0x66, 0x41, 0x0f, 0x5e } |
| static const uint8_t | randomx::SQRTPD [] = { 0x66, 0x0f, 0x51 } |
| static const uint8_t | randomx::AND_OR_MOV_LDMXCSR [] = { 0x25, 0x00, 0x60, 0x00, 0x00, 0x0D, 0xC0, 0x9F, 0x00, 0x00, 0x50, 0x0F, 0xAE, 0x14, 0x24, 0x58 } |
| static const uint8_t | randomx::ROL_RAX [] = { 0x48, 0xc1, 0xc0 } |
| static const uint8_t | randomx::XOR_ECX_ECX [] = { 0x33, 0xC9 } |
| static const uint8_t | randomx::REX_CMP_R32I [] = { 0x41, 0x81 } |
| static const uint8_t | randomx::REX_CMP_M32I [] = { 0x81, 0x3c, 0x06 } |
| static const uint8_t | randomx::MOVAPD [] = { 0x66, 0x0f, 0x29 } |
| static const uint8_t | randomx::REX_MOV_MR [] = { 0x4c, 0x89 } |
| static const uint8_t | randomx::REX_XOR_EAX [] = { 0x41, 0x33 } |
| static const uint8_t | randomx::SUB_EBX [] = { 0x83, 0xEB, 0x01 } |
| static const uint8_t | randomx::JNZ [] = { 0x0f, 0x85 } |
| static const uint8_t | randomx::JMP = 0xe9 |
| static const uint8_t | randomx::REX_XOR_RAX_R64 [] = { 0x49, 0x33 } |
| static const uint8_t | randomx::REX_XCHG [] = { 0x4d, 0x87 } |
| static const uint8_t | randomx::REX_ANDPS_XMM12 [] = { 0x45, 0x0F, 0x54, 0xE5, 0x45, 0x0F, 0x56, 0xE6 } |
| static const uint8_t | randomx::REX_PADD [] = { 0x66, 0x44, 0x0f } |
| static const uint8_t | randomx::PADD_OPCODES [] = { 0xfc, 0xfd, 0xfe, 0xd4 } |
| static const uint8_t | randomx::CALL = 0xe8 |
| static const uint8_t | randomx::REX_ADD_I [] = { 0x49, 0x81 } |
| static const uint8_t | randomx::REX_TEST [] = { 0x49, 0xF7 } |
| static const uint8_t | randomx::JZ [] = { 0x0f, 0x84 } |
| static const uint8_t | randomx::RET = 0xc3 |
| static const uint8_t | randomx::LEA_32 [] = { 0x41, 0x8d } |
| static const uint8_t | randomx::MOVNTI [] = { 0x4c, 0x0f, 0xc3 } |
| static const uint8_t | randomx::ADD_EBX_I [] = { 0x81, 0xc3 } |
| static const uint8_t | randomx::NOP1 [] = { 0x90 } |
| static const uint8_t | randomx::NOP2 [] = { 0x66, 0x90 } |
| static const uint8_t | randomx::NOP3 [] = { 0x66, 0x66, 0x90 } |
| static const uint8_t | randomx::NOP4 [] = { 0x0F, 0x1F, 0x40, 0x00 } |
| static const uint8_t | randomx::NOP5 [] = { 0x0F, 0x1F, 0x44, 0x00, 0x00 } |
| static const uint8_t | randomx::NOP6 [] = { 0x66, 0x0F, 0x1F, 0x44, 0x00, 0x00 } |
| static const uint8_t | randomx::NOP7 [] = { 0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00 } |
| static const uint8_t | randomx::NOP8 [] = { 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 } |
| static const uint8_t * | randomx::NOPX [] = { NOP1, NOP2, NOP3, NOP4, NOP5, NOP6, NOP7, NOP8 } |