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

Public Member Functions

 MacroOp (const char *name, int size)
 MacroOp (const char *name, int size, int latency, ExecutionPort::type uop)
 MacroOp (const char *name, int size, int latency, ExecutionPort::type uop1, ExecutionPort::type uop2)
 MacroOp (const MacroOp &parent, bool dependent)
const char * getName () const
int getSize () const
int getLatency () const
ExecutionPort::type getUop1 () const
ExecutionPort::type getUop2 () const
bool isSimple () const
bool isEliminated () const
bool isDependent () const

Static Public Attributes

static const MacroOp Add_rr = MacroOp("add r,r", 3, 1, ExecutionPort::P015)
static const MacroOp Add_ri = MacroOp("add r,i", 7, 1, ExecutionPort::P015)
static const MacroOp Lea_sib = MacroOp("lea r,r+r*s", 4, 1, ExecutionPort::P01)
static const MacroOp Sub_rr = MacroOp("sub r,r", 3, 1, ExecutionPort::P015)
static const MacroOp Imul_rr = MacroOp("imul r,r", 4, 3, ExecutionPort::P1)
static const MacroOp Imul_r = MacroOp("imul r", 3, 4, ExecutionPort::P1, ExecutionPort::P5)
static const MacroOp Mul_r = MacroOp("mul r", 3, 4, ExecutionPort::P1, ExecutionPort::P5)
static const MacroOp Mov_rr = MacroOp("mov r,r", 3)
static const MacroOp Mov_ri64 = MacroOp("mov rax,i64", 10, 1, ExecutionPort::P015)
static const MacroOp Xor_rr = MacroOp("xor r,r", 3, 1, ExecutionPort::P015)
static const MacroOp Xor_ri = MacroOp("xor r,i", 7, 1, ExecutionPort::P015)
static const MacroOp Ror_rcl = MacroOp("ror r,cl", 3, 1, ExecutionPort::P0, ExecutionPort::P5)
static const MacroOp Ror_ri = MacroOp("ror r,i", 4, 1, ExecutionPort::P05)
static const MacroOp TestJz_fused = MacroOp("testjz r,i", 13, 0, ExecutionPort::P5)
static const MacroOp Xor_self = MacroOp("xor rcx,rcx", 3)
static const MacroOp Cmp_ri = MacroOp("cmp r,i", 7, 1, ExecutionPort::P015)
static const MacroOp Setcc_r = MacroOp("setcc cl", 3, 1, ExecutionPort::P05)

Private Attributes

const char * name_
int size_
int latency_
ExecutionPort::type uop1_
ExecutionPort::type uop2_
bool dependent_ = false

Constructor & Destructor Documentation

◆ MacroOp() [1/4]

randomx::MacroOp::MacroOp ( const char * name,
int size )
inline

◆ MacroOp() [2/4]

randomx::MacroOp::MacroOp ( const char * name,
int size,
int latency,
ExecutionPort::type uop )
inline

◆ MacroOp() [3/4]

randomx::MacroOp::MacroOp ( const char * name,
int size,
int latency,
ExecutionPort::type uop1,
ExecutionPort::type uop2 )
inline

◆ MacroOp() [4/4]

randomx::MacroOp::MacroOp ( const MacroOp & parent,
bool dependent )
inline

Member Function Documentation

◆ getLatency()

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

◆ getName()

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

◆ getSize()

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

◆ getUop1()

ExecutionPort::type randomx::MacroOp::getUop1 ( ) const
inline

◆ getUop2()

ExecutionPort::type randomx::MacroOp::getUop2 ( ) const
inline

◆ isDependent()

bool randomx::MacroOp::isDependent ( ) const
inline

◆ isEliminated()

bool randomx::MacroOp::isEliminated ( ) const
inline

◆ isSimple()

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

Member Data Documentation

◆ Add_ri

const MacroOp randomx::MacroOp::Add_ri = MacroOp("add r,i", 7, 1, ExecutionPort::P015)
static

◆ Add_rr

const MacroOp randomx::MacroOp::Add_rr = MacroOp("add r,r", 3, 1, ExecutionPort::P015)
static

◆ Cmp_ri

const MacroOp randomx::MacroOp::Cmp_ri = MacroOp("cmp r,i", 7, 1, ExecutionPort::P015)
static

◆ dependent_

bool randomx::MacroOp::dependent_ = false
private

◆ Imul_r

const MacroOp randomx::MacroOp::Imul_r = MacroOp("imul r", 3, 4, ExecutionPort::P1, ExecutionPort::P5)
static

◆ Imul_rr

const MacroOp randomx::MacroOp::Imul_rr = MacroOp("imul r,r", 4, 3, ExecutionPort::P1)
static

◆ latency_

int randomx::MacroOp::latency_
private

◆ Lea_sib

const MacroOp randomx::MacroOp::Lea_sib = MacroOp("lea r,r+r*s", 4, 1, ExecutionPort::P01)
static

◆ Mov_ri64

const MacroOp randomx::MacroOp::Mov_ri64 = MacroOp("mov rax,i64", 10, 1, ExecutionPort::P015)
static

◆ Mov_rr

const MacroOp randomx::MacroOp::Mov_rr = MacroOp("mov r,r", 3)
static

◆ Mul_r

const MacroOp randomx::MacroOp::Mul_r = MacroOp("mul r", 3, 4, ExecutionPort::P1, ExecutionPort::P5)
static

◆ name_

const char* randomx::MacroOp::name_
private

◆ Ror_rcl

const MacroOp randomx::MacroOp::Ror_rcl = MacroOp("ror r,cl", 3, 1, ExecutionPort::P0, ExecutionPort::P5)
static

◆ Ror_ri

const MacroOp randomx::MacroOp::Ror_ri = MacroOp("ror r,i", 4, 1, ExecutionPort::P05)
static

◆ Setcc_r

const MacroOp randomx::MacroOp::Setcc_r = MacroOp("setcc cl", 3, 1, ExecutionPort::P05)
static

◆ size_

int randomx::MacroOp::size_
private

◆ Sub_rr

const MacroOp randomx::MacroOp::Sub_rr = MacroOp("sub r,r", 3, 1, ExecutionPort::P015)
static

◆ TestJz_fused

const MacroOp randomx::MacroOp::TestJz_fused = MacroOp("testjz r,i", 13, 0, ExecutionPort::P5)
static

◆ uop1_

ExecutionPort::type randomx::MacroOp::uop1_
private

◆ uop2_

ExecutionPort::type randomx::MacroOp::uop2_
private

◆ Xor_ri

const MacroOp randomx::MacroOp::Xor_ri = MacroOp("xor r,i", 7, 1, ExecutionPort::P015)
static

◆ Xor_rr

const MacroOp randomx::MacroOp::Xor_rr = MacroOp("xor r,r", 3, 1, ExecutionPort::P015)
static

◆ Xor_self

const MacroOp randomx::MacroOp::Xor_self = MacroOp("xor rcx,rcx", 3)
static

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