asmjit::InstRWInfo Struct Reference

Read/Write information of an instruction.

Public Members

Members

Member Functions

Commons
Instruction Flags
CPU Flags Information
Reg/Mem Information
Operand Read/Write Information

Member Function Documentation

void InstRWInfo::reset()noexcept◆ 

Resets this RW information to all zeros.

InstRWFlags InstRWInfo::instFlags() constnoexcept◆ 

Returns flags associated with the instruction, see InstRWFlags.

bool InstRWInfo::hasInstFlag(InstRWFlags flag) constnoexcept◆ 

Tests whether the instruction flags contain flag.

bool InstRWInfo::isMovOp() constnoexcept◆ 

Tests whether the instruction flags contain InstRWFlags::kMovOp.

CpuRWFlags InstRWInfo::readFlags() constnoexcept◆ 

Returns a mask of CPU flags read.

CpuRWFlags InstRWInfo::writeFlags() constnoexcept◆ 

Returns a mask of CPU flags written.

uint32_t InstRWInfo::rmFeature() constnoexcept◆ 

Returns the CPU feature required to replace a register operand with memory operand.

If the returned feature is zero (none) then this instruction either doesn't provide memory operand combination or there is no extra CPU feature required.

X86 Specific

Some AVX+ instructions may require extra features for replacing registers with memory operands, for example VPSLLDQ instruction only supports vpslldq reg, reg, imm combination on AVX/AVX2 capable CPUs and requires AVX-512 for vpslldq reg, mem, imm combination.

const OpRWInfo& InstRWInfo::extraReg() constnoexcept◆ 

Returns RW information of extra register operand (extraReg).

const OpRWInfo* InstRWInfo::operands() constnoexcept◆ 

Returns RW information of all instruction's operands.

const OpRWInfo& InstRWInfo::operand(size_t index) constnoexcept◆ 

Returns RW information of the operand at the given index.

uint32_t InstRWInfo::opCount() constnoexcept◆ 

Returns the number of operands this instruction has.

Member Data Documentation

InstRWFlags InstRWInfo::_instFlags◆ 

Instruction flags (there are no flags at the moment, this field is reserved).

CpuRWFlags InstRWInfo::_readFlags◆ 

CPU flags read.

CpuRWFlags InstRWInfo::_writeFlags◆ 

CPU flags written.

uint8_t InstRWInfo::_opCount◆ 

Count of operands.

uint8_t InstRWInfo::_rmFeature◆ 

CPU feature required for replacing register operand with memory operand.

uint8_t InstRWInfo::_reserved[18]◆ 

Reserved for future use.

OpRWInfo InstRWInfo::_extraReg◆ 

Read/Write info of extra register (rep{} or kz{}).

OpRWInfo InstRWInfo::_operands[Globals::kMaxOpCount]◆ 

Read/Write info of instruction operands.