33 #include <type_traits> 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");
void h_ISMULH_M(std::ostream &) const
Definition: instruction.cpp:160
uint8_t mod
Definition: instruction.hpp:106
Definition: allocator.cpp:35
void(Instruction::* InstructionFormatter)(std::ostream &) const
Definition: instruction.hpp:40
friend std::ostream & operator<<(std::ostream &os, const Instruction &i)
Definition: instruction.hpp:86
uint8_t src
Definition: instruction.hpp:105
int i
Definition: pymoduletest.py:23
void h_FADD_M(std::ostream &) const
Definition: instruction.cpp:252
Definition: instruction.hpp:75
int getModCond() const
Definition: instruction.hpp:96
void h_ISWAP_R(std::ostream &) const
Definition: instruction.cpp:233
void h_FSUB_M(std::ostream &) const
Definition: instruction.cpp:266
void h_IMULH_M(std::ostream &) const
Definition: instruction.cpp:139
void h_IADD_M(std::ostream &) const
Definition: instruction.cpp:66
unsigned short uint16_t
Definition: stdint.h:125
uint32_t imm32
Definition: instruction.hpp:107
void genAddressImm(std::ostream &os) const
Definition: instruction.cpp:52
unsigned char uint8_t
Definition: stdint.h:124
int getModShift() const
Definition: instruction.hpp:93
uint8_t opcode
Definition: instruction.hpp:103
uint8_t dst
Definition: instruction.hpp:104
void h_ISTORE(std::ostream &) const
Definition: instruction.cpp:309
void h_FDIV_M(std::ostream &) const
Definition: instruction.cpp:285
void setMod(uint8_t val)
Definition: instruction.hpp:99
void setImm32(uint32_t val)
Definition: instruction.hpp:80
unsigned int uint32_t
Definition: stdint.h:126
static InstructionFormatter engine[256]
Definition: instruction.hpp:111
void h_ISUB_R(std::ostream &) const
Definition: instruction.cpp:81
void h_IMUL_RCP(std::ostream &) const
Definition: instruction.cpp:228
void h_IXOR_M(std::ostream &) const
Definition: instruction.cpp:191
void h_IXOR_R(std::ostream &) const
Definition: instruction.cpp:180
void h_IMUL_M(std::ostream &) const
Definition: instruction.cpp:118
void h_CFROUND(std::ostream &) const
Definition: instruction.cpp:298
void h_FMUL_R(std::ostream &) const
Definition: instruction.cpp:279
uint32_t getImm32() const
Definition: instruction.hpp:77
void h_FSWAP_R(std::ostream &) const
Definition: instruction.cpp:239
void print(std::ostream &) const
Definition: instruction.cpp:34
void genAddressRegDst(std::ostream &, int) const
Definition: instruction.cpp:44
static const char * names[256]
Definition: instruction.hpp:110
void h_IROR_R(std::ostream &) const
Definition: instruction.cpp:206
void h_FSUB_R(std::ostream &) const
Definition: instruction.cpp:260
InstructionType
Definition: instruction.hpp:42
void h_IMUL_R(std::ostream &) const
Definition: instruction.cpp:107
void h_FSCAL_R(std::ostream &) const
Definition: instruction.cpp:274
void h_ISUB_M(std::ostream &) const
Definition: instruction.cpp:92
void h_FSQRT_R(std::ostream &) const
Definition: instruction.cpp:293
int getModMem() const
Definition: instruction.hpp:90
static FORCE_INLINE void store32(void *dst, uint32_t w)
Definition: endian.h:67
void h_IMULH_R(std::ostream &) const
Definition: instruction.cpp:133
void h_ISMULH_R(std::ostream &) const
Definition: instruction.cpp:154
const char * getName() const
Definition: instruction.hpp:83
void h_IROL_R(std::ostream &) const
Definition: instruction.cpp:217
void h_FADD_R(std::ostream &) const
Definition: instruction.cpp:246
void h_IADD_RS(std::ostream &) const
Definition: instruction.cpp:56
void genAddressReg(std::ostream &os, int) const
Definition: instruction.cpp:40
void h_INEG_R(std::ostream &) const
Definition: instruction.cpp:175
void h_NOP(std::ostream &) const
Definition: instruction.cpp:316
static FORCE_INLINE uint32_t load32(const void *src)
Definition: endian.h:29
void h_CBRANCH(std::ostream &) const
Definition: instruction.cpp:303