Monero
Loading...
Searching...
No Matches
randomx::SuperscalarInstructionInfo Class Reference
Collaboration diagram for randomx::SuperscalarInstructionInfo:

Public Member Functions

const char * getName () const
int getSize () const
bool isSimple () const
int getLatency () const
const MacroOpgetOp (int index) const
SuperscalarInstructionType getType () const
int getResultOp () const
int getDstOp () const
int getSrcOp () const

Static Public Attributes

static const SuperscalarInstructionInfo ISUB_R = SuperscalarInstructionInfo("ISUB_R", SuperscalarInstructionType::ISUB_R, MacroOp::Sub_rr, 0)
static const SuperscalarInstructionInfo IXOR_R = SuperscalarInstructionInfo("IXOR_R", SuperscalarInstructionType::IXOR_R, MacroOp::Xor_rr, 0)
static const SuperscalarInstructionInfo IADD_RS = SuperscalarInstructionInfo("IADD_RS", SuperscalarInstructionType::IADD_RS, MacroOp::Lea_sib, 0)
static const SuperscalarInstructionInfo IMUL_R = SuperscalarInstructionInfo("IMUL_R", SuperscalarInstructionType::IMUL_R, MacroOp::Imul_rr, 0)
static const SuperscalarInstructionInfo IROR_C = SuperscalarInstructionInfo("IROR_C", SuperscalarInstructionType::IROR_C, MacroOp::Ror_ri, -1)
static const SuperscalarInstructionInfo IADD_C7 = SuperscalarInstructionInfo("IADD_C7", SuperscalarInstructionType::IADD_C7, MacroOp::Add_ri, -1)
static const SuperscalarInstructionInfo IXOR_C7 = SuperscalarInstructionInfo("IXOR_C7", SuperscalarInstructionType::IXOR_C7, MacroOp::Xor_ri, -1)
static const SuperscalarInstructionInfo IADD_C8 = SuperscalarInstructionInfo("IADD_C8", SuperscalarInstructionType::IADD_C8, MacroOp::Add_ri, -1)
static const SuperscalarInstructionInfo IXOR_C8 = SuperscalarInstructionInfo("IXOR_C8", SuperscalarInstructionType::IXOR_C8, MacroOp::Xor_ri, -1)
static const SuperscalarInstructionInfo IADD_C9 = SuperscalarInstructionInfo("IADD_C9", SuperscalarInstructionType::IADD_C9, MacroOp::Add_ri, -1)
static const SuperscalarInstructionInfo IXOR_C9 = SuperscalarInstructionInfo("IXOR_C9", SuperscalarInstructionType::IXOR_C9, MacroOp::Xor_ri, -1)
static const SuperscalarInstructionInfo IMULH_R = SuperscalarInstructionInfo("IMULH_R", SuperscalarInstructionType::IMULH_R, IMULH_R_ops_array, 1, 0, 1)
static const SuperscalarInstructionInfo ISMULH_R = SuperscalarInstructionInfo("ISMULH_R", SuperscalarInstructionType::ISMULH_R, ISMULH_R_ops_array, 1, 0, 1)
static const SuperscalarInstructionInfo IMUL_RCP = SuperscalarInstructionInfo("IMUL_RCP", SuperscalarInstructionType::IMUL_RCP, IMUL_RCP_ops_array, 1, 1, -1)
static const SuperscalarInstructionInfo NOP = SuperscalarInstructionInfo("NOP")

Private Member Functions

 SuperscalarInstructionInfo (const char *name)
 SuperscalarInstructionInfo (const char *name, SuperscalarInstructionType type, const MacroOp &op, int srcOp)
template<size_t N>
 SuperscalarInstructionInfo (const char *name, SuperscalarInstructionType type, const MacroOp(&arr)[N], int resultOp, int dstOp, int srcOp)

Private Attributes

const char * name_
SuperscalarInstructionType type_
std::vector< MacroOpops_
int latency_
int resultOp_ = 0
int dstOp_ = 0
int srcOp_

Constructor & Destructor Documentation

◆ SuperscalarInstructionInfo() [1/3]

randomx::SuperscalarInstructionInfo::SuperscalarInstructionInfo ( const char * name)
inlineprivate

◆ SuperscalarInstructionInfo() [2/3]

randomx::SuperscalarInstructionInfo::SuperscalarInstructionInfo ( const char * name,
SuperscalarInstructionType type,
const MacroOp & op,
int srcOp )
inlineprivate

◆ SuperscalarInstructionInfo() [3/3]

template<size_t N>
randomx::SuperscalarInstructionInfo::SuperscalarInstructionInfo ( const char * name,
SuperscalarInstructionType type,
const MacroOp(&) arr[N],
int resultOp,
int dstOp,
int srcOp )
inlineprivate

Member Function Documentation

◆ getDstOp()

int randomx::SuperscalarInstructionInfo::getDstOp ( ) const
inline

◆ getLatency()

int randomx::SuperscalarInstructionInfo::getLatency ( ) const
inline

◆ getName()

const char * randomx::SuperscalarInstructionInfo::getName ( ) const
inline

◆ getOp()

const MacroOp & randomx::SuperscalarInstructionInfo::getOp ( int index) const
inline

◆ getResultOp()

int randomx::SuperscalarInstructionInfo::getResultOp ( ) const
inline

◆ getSize()

int randomx::SuperscalarInstructionInfo::getSize ( ) const
inline

◆ getSrcOp()

int randomx::SuperscalarInstructionInfo::getSrcOp ( ) const
inline

◆ getType()

SuperscalarInstructionType randomx::SuperscalarInstructionInfo::getType ( ) const
inline

◆ isSimple()

bool randomx::SuperscalarInstructionInfo::isSimple ( ) const
inline

Member Data Documentation

◆ dstOp_

int randomx::SuperscalarInstructionInfo::dstOp_ = 0
private

◆ IADD_C7

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IADD_C7 = SuperscalarInstructionInfo("IADD_C7", SuperscalarInstructionType::IADD_C7, MacroOp::Add_ri, -1)
static

◆ IADD_C8

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IADD_C8 = SuperscalarInstructionInfo("IADD_C8", SuperscalarInstructionType::IADD_C8, MacroOp::Add_ri, -1)
static

◆ IADD_C9

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IADD_C9 = SuperscalarInstructionInfo("IADD_C9", SuperscalarInstructionType::IADD_C9, MacroOp::Add_ri, -1)
static

◆ IADD_RS

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IADD_RS = SuperscalarInstructionInfo("IADD_RS", SuperscalarInstructionType::IADD_RS, MacroOp::Lea_sib, 0)
static

◆ IMUL_R

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IMUL_R = SuperscalarInstructionInfo("IMUL_R", SuperscalarInstructionType::IMUL_R, MacroOp::Imul_rr, 0)
static

◆ IMUL_RCP

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IMUL_RCP = SuperscalarInstructionInfo("IMUL_RCP", SuperscalarInstructionType::IMUL_RCP, IMUL_RCP_ops_array, 1, 1, -1)
static

◆ IMULH_R

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IMULH_R = SuperscalarInstructionInfo("IMULH_R", SuperscalarInstructionType::IMULH_R, IMULH_R_ops_array, 1, 0, 1)
static

◆ IROR_C

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IROR_C = SuperscalarInstructionInfo("IROR_C", SuperscalarInstructionType::IROR_C, MacroOp::Ror_ri, -1)
static

◆ ISMULH_R

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::ISMULH_R = SuperscalarInstructionInfo("ISMULH_R", SuperscalarInstructionType::ISMULH_R, ISMULH_R_ops_array, 1, 0, 1)
static

◆ ISUB_R

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::ISUB_R = SuperscalarInstructionInfo("ISUB_R", SuperscalarInstructionType::ISUB_R, MacroOp::Sub_rr, 0)
static

◆ IXOR_C7

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IXOR_C7 = SuperscalarInstructionInfo("IXOR_C7", SuperscalarInstructionType::IXOR_C7, MacroOp::Xor_ri, -1)
static

◆ IXOR_C8

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IXOR_C8 = SuperscalarInstructionInfo("IXOR_C8", SuperscalarInstructionType::IXOR_C8, MacroOp::Xor_ri, -1)
static

◆ IXOR_C9

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IXOR_C9 = SuperscalarInstructionInfo("IXOR_C9", SuperscalarInstructionType::IXOR_C9, MacroOp::Xor_ri, -1)
static

◆ IXOR_R

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::IXOR_R = SuperscalarInstructionInfo("IXOR_R", SuperscalarInstructionType::IXOR_R, MacroOp::Xor_rr, 0)
static

◆ latency_

int randomx::SuperscalarInstructionInfo::latency_
private

◆ name_

const char* randomx::SuperscalarInstructionInfo::name_
private

◆ NOP

const SuperscalarInstructionInfo randomx::SuperscalarInstructionInfo::NOP = SuperscalarInstructionInfo("NOP")
static

◆ ops_

std::vector<MacroOp> randomx::SuperscalarInstructionInfo::ops_
private

◆ resultOp_

int randomx::SuperscalarInstructionInfo::resultOp_ = 0
private

◆ srcOp_

int randomx::SuperscalarInstructionInfo::srcOp_
private

◆ type_

SuperscalarInstructionType randomx::SuperscalarInstructionInfo::type_
private

The documentation for this class was generated from the following file: