94 return (
mod >> 2) % 4;
109 void print(std::ostream&)
const;
144 void h_NOP(std::ostream&)
const;
147 static_assert(
sizeof(
Instruction) == 8,
"Invalid size of struct randomx::Instruction");
148 static_assert(std::is_standard_layout<Instruction>(),
"randomx::Instruction must be a standard-layout struct");
Definition instruction.hpp:75
void h_IMUL_M(std::ostream &) const
Definition instruction.cpp:118
void h_IROL_R(std::ostream &) const
Definition instruction.cpp:217
void h_IMUL_R(std::ostream &) const
Definition instruction.cpp:107
void h_FSUB_R(std::ostream &) const
Definition instruction.cpp:260
void setImm32(uint32_t val)
Definition instruction.hpp:80
uint8_t opcode
Definition instruction.hpp:103
void print(std::ostream &) const
Definition instruction.cpp:34
void h_IMUL_RCP(std::ostream &) const
Definition instruction.cpp:228
void h_IMULH_M(std::ostream &) const
Definition instruction.cpp:139
int getModCond() const
Definition instruction.hpp:96
void h_FSCAL_R(std::ostream &) const
Definition instruction.cpp:274
void h_FDIV_M(std::ostream &) const
Definition instruction.cpp:285
void h_IMULH_R(std::ostream &) const
Definition instruction.cpp:133
uint8_t mod
Definition instruction.hpp:106
const char * getName() const
Definition instruction.hpp:83
void h_FSQRT_R(std::ostream &) const
Definition instruction.cpp:293
void h_FSWAP_R(std::ostream &) const
Definition instruction.cpp:239
void h_ISUB_R(std::ostream &) const
Definition instruction.cpp:81
static InstructionFormatter engine[256]
Definition instruction.hpp:111
void h_INEG_R(std::ostream &) const
Definition instruction.cpp:175
uint8_t dst
Definition instruction.hpp:104
uint32_t getImm32() const
Definition instruction.hpp:77
uint32_t imm32
Definition instruction.hpp:107
void h_FMUL_R(std::ostream &) const
Definition instruction.cpp:279
void genAddressReg(std::ostream &os, int) const
Definition instruction.cpp:40
void setMod(uint8_t val)
Definition instruction.hpp:99
void genAddressImm(std::ostream &os) const
Definition instruction.cpp:52
void h_ISMULH_R(std::ostream &) const
Definition instruction.cpp:154
void h_IXOR_R(std::ostream &) const
Definition instruction.cpp:180
void h_IADD_RS(std::ostream &) const
Definition instruction.cpp:56
void h_ISUB_M(std::ostream &) const
Definition instruction.cpp:92
uint8_t src
Definition instruction.hpp:105
void h_NOP(std::ostream &) const
Definition instruction.cpp:316
void h_CFROUND(std::ostream &) const
Definition instruction.cpp:298
void h_FADD_M(std::ostream &) const
Definition instruction.cpp:252
void genAddressRegDst(std::ostream &, int) const
Definition instruction.cpp:44
void h_CBRANCH(std::ostream &) const
Definition instruction.cpp:303
void h_IROR_R(std::ostream &) const
Definition instruction.cpp:206
void h_ISTORE(std::ostream &) const
Definition instruction.cpp:309
void h_IADD_M(std::ostream &) const
Definition instruction.cpp:66
void h_FADD_R(std::ostream &) const
Definition instruction.cpp:246
friend std::ostream & operator<<(std::ostream &os, const Instruction &i)
Definition instruction.hpp:86
int getModMem() const
Definition instruction.hpp:90
void h_ISMULH_M(std::ostream &) const
Definition instruction.cpp:160
int getModShift() const
Definition instruction.hpp:93
static const char * names[256]
Definition instruction.hpp:110
void h_IXOR_M(std::ostream &) const
Definition instruction.cpp:191
void h_FSUB_M(std::ostream &) const
Definition instruction.cpp:266
void h_ISWAP_R(std::ostream &) const
Definition instruction.cpp:233
static FORCE_INLINE uint32_t load32(const void *src)
Definition endian.h:29
static FORCE_INLINE void store32(void *dst, uint32_t w)
Definition endian.h:67
Definition allocator.cpp:35
void(Instruction::* InstructionFormatter)(std::ostream &) const
Definition instruction.hpp:40
InstructionType
Definition instruction.hpp:42
@ IMUL_M
Definition instruction.hpp:48
@ IROL_R
Definition instruction.hpp:58
@ IMULH_R
Definition instruction.hpp:49
@ NOP
Definition instruction.hpp:72
@ IXOR_R
Definition instruction.hpp:55
@ FADD_M
Definition instruction.hpp:62
@ ISWAP_R
Definition instruction.hpp:59
@ FMUL_R
Definition instruction.hpp:66
@ ISUB_M
Definition instruction.hpp:46
@ FSWAP_R
Definition instruction.hpp:60
@ IMUL_R
Definition instruction.hpp:47
@ IXOR_M
Definition instruction.hpp:56
@ FDIV_M
Definition instruction.hpp:67
@ INEG_R
Definition instruction.hpp:54
@ FSQRT_R
Definition instruction.hpp:68
@ IADD_RS
Definition instruction.hpp:43
@ ISUB_R
Definition instruction.hpp:45
@ CFROUND
Definition instruction.hpp:70
@ FSUB_M
Definition instruction.hpp:64
@ ISTORE
Definition instruction.hpp:71
@ IROR_R
Definition instruction.hpp:57
@ IMULH_M
Definition instruction.hpp:50
@ ISMULH_M
Definition instruction.hpp:52
@ IMUL_RCP
Definition instruction.hpp:53
@ ISMULH_R
Definition instruction.hpp:51
@ FSUB_R
Definition instruction.hpp:63
@ FSCAL_R
Definition instruction.hpp:65
@ IADD_M
Definition instruction.hpp:44
@ FADD_R
Definition instruction.hpp:61
@ CBRANCH
Definition instruction.hpp:69
unsigned short uint16_t
Definition stdint.h:125
unsigned int uint32_t
Definition stdint.h:126
unsigned char uint8_t
Definition stdint.h:124