asmjit::InstRWInfo Struct Reference

Read/Write information of an instruction.

Public Members

Member Functions

Instruction Flags
CPU Flags Read/Write Information


Reg/Mem Information
Operand Read/Write Information

Member Function Documentation

void InstRWInfo::reset()noexcept

Resets this RW information to all zeros.

uint32_t InstRWInfo::readFlags() constnoexcept

Returns read flags of the instruction.

uint32_t InstRWInfo::writeFlags() constnoexcept

Returns write flags of the instruction.

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 'reg/reg/imm' combination on AVX/AVX2 capable CPUs and requires AVX-512 for '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

uint32_t InstRWInfo::_instFlags

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

uint32_t InstRWInfo::_readFlags

Mask of CPU flags read.

uint32_t InstRWInfo::_writeFlags

Mask of 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 onfo of extra register (rep{} or kz{}).

OpRWInfo InstRWInfo::_operands[Globals::kMaxOpCount]

Read/Write info of instruction operands.