fcml  1.2.2
Public Member Functions | List of all members
fcml::InstructionDetails Class Reference

Additional details about an instruction. More...

#include <fcml_disassembler.hpp>

Public Member Functions

fcml_uint16_t getAddrMode () const
 Gets address mode/instruction form. More...
 
void setAddrMode (fcml_uint16_t addrMode)
 Sets instruction form. More...
 
fcml_en_instruction getInstruction () const
 Gets instruction code. More...
 
void setInstruction (fcml_en_instruction instruction)
 Gets a new instruction code for the instruction. More...
 
const fcml_uint8_t * getInstructionCode () const
 Gets a pointer to the instruction code. More...
 
fcml_uint8_t * getInstructionCode ()
 Gets a pointer to the instruction code. More...
 
fcml_uint64_t getInstructionGroup () const
 Gets instruction group. More...
 
void setInstructionGroup (fcml_uint64_t instructionGroup)
 Sets an instruction group. More...
 
fcml_usize getInstructionSize () const
 Instruction size in bytes. More...
 
void setInstructionSize (fcml_usize instructionSize)
 Sets the instruction size in bytes. More...
 
bool isShortcut () const
 Gets true if it's a shortcut instruction. More...
 
void setShortcut (bool isShortcut)
 Marks the instruction as a shortcut. More...
 
const DecodedModRMDetailsgetModRmDetails () const
 Gets ModR/M instruction details. More...
 
DecodedModRMDetailsgetModRmDetails ()
 Gets ModR/M instruction details. More...
 
void setModRmDetails (const DecodedModRMDetails &modRmDetails)
 Sets a new instruction details for the instruction. More...
 
bool isOpcodeFieldSBit () const
 Gets opcode field 'S'. More...
 
void setOpcodeFieldSBit (bool opcodeFieldSBit)
 Sets 'S' field of the opcode byte. More...
 
bool isOpcodeFieldWBit () const
 Gets opcode field 'W'. More...
 
void setOpcodeFieldWBit (bool opcodeFieldWBit)
 Sets 'W' field of the opcode byte. More...
 
const OperandDetailsgetOperandDetails (fcml_usize index) const
 Gets the operand details for given index. More...
 
OperandDetailsgetOperandDetails (fcml_usize index)
 Gets the operand details for given index. More...
 
const PrefixesDetailsgetPrefixesDetails () const
 Gets instruction prefixes details. More...
 
PrefixesDetailsgetPrefixesDetails ()
 Gets instruction prefixes details. More...
 
void setPrefixesDetails (const PrefixesDetails &prefixesDetails)
 Sets a new instruction prefixes details. More...
 
fcml_en_pseudo_operations getPseudoOp () const
 Gets pseudo operation code. More...
 
void setPseudoOp (fcml_en_pseudo_operations pseudoOp)
 Sets pseudo operation for the instruction. More...
 
bool isPseudoOp () const
 Gets true is it's a pseudo operation. More...
 
void setIsPseudoOp (bool isPseudoOp)
 Sets pseudo operation flag. More...
 
fcml_uint8_t getTupleType () const
 Gets avx-512 tuple type. More...
 
void setTupleType (fcml_uint8_t tupleType)
 Sets avx-512 tuple type. More...
 

Detailed Description

Additional details about an instruction.

Since
1.1.0

Member Function Documentation

◆ getAddrMode()

fcml_uint16_t fcml::InstructionDetails::getAddrMode ( ) const
inline

Gets address mode/instruction form.

This information is used internally and is rather useless in day to day usage, but if you are interested in it do not hesitate to take a look at the manual.

Returns
Instruction form.
Since
1.1.0

◆ getInstruction()

fcml_en_instruction fcml::InstructionDetails::getInstruction ( ) const
inline

Gets instruction code.

See fcml_en_instruction for more details.

Returns
Instruction code.
Since
1.1.0

◆ getInstructionCode() [1/2]

const fcml_uint8_t* fcml::InstructionDetails::getInstructionCode ( ) const
inline

Gets a pointer to the instruction code.

See fcml_en_instruction for more details.

Returns
The pointer to the instruction code.
Since
1.1.0

◆ getInstructionCode() [2/2]

fcml_uint8_t* fcml::InstructionDetails::getInstructionCode ( )
inline

Gets a pointer to the instruction code.

See fcml_en_instruction for more details.

Returns
The pointer to the instruction code.
Since
1.1.0

◆ getInstructionGroup()

fcml_uint64_t fcml::InstructionDetails::getInstructionGroup ( ) const
inline

Gets instruction group.

See fcml_instructions.h for all available groups.

Returns
The instruction group.
Since
1.1.0

◆ getInstructionSize()

fcml_usize fcml::InstructionDetails::getInstructionSize ( ) const
inline

Instruction size in bytes.

Returns
Size of the instruction in bytes.
Since
1.1.0

◆ getModRmDetails() [1/2]

const DecodedModRMDetails& fcml::InstructionDetails::getModRmDetails ( ) const
inline

Gets ModR/M instruction details.

Returns
ModR/M details.
Since
1.1.0

◆ getModRmDetails() [2/2]

DecodedModRMDetails& fcml::InstructionDetails::getModRmDetails ( )
inline

Gets ModR/M instruction details.

Returns
ModR/M details.
Since
1.1.0

◆ getOperandDetails() [1/2]

const OperandDetails& fcml::InstructionDetails::getOperandDetails ( fcml_usize  index) const
inline

Gets the operand details for given index.

Parameters
indexIndex of the instruction details.
Returns
The operand details for the given index.
Exceptions
BadArgumentExceptionArray index out of bound.
Since
1.1.0

◆ getOperandDetails() [2/2]

OperandDetails& fcml::InstructionDetails::getOperandDetails ( fcml_usize  index)
inline

Gets the operand details for given index.

Parameters
indexIndex of the instruction details.
Returns
The operand details for the given index.
Exceptions
BadArgumentExceptionArray index out of bound.
Since
1.1.0

◆ getPrefixesDetails() [1/2]

const PrefixesDetails& fcml::InstructionDetails::getPrefixesDetails ( ) const
inline

Gets instruction prefixes details.

Returns
The instruction prefix details.
Since
1.1.0

◆ getPrefixesDetails() [2/2]

PrefixesDetails& fcml::InstructionDetails::getPrefixesDetails ( )
inline

Gets instruction prefixes details.

Returns
The instruction prefix details.
Since
1.1.0

◆ getPseudoOp()

fcml_en_pseudo_operations fcml::InstructionDetails::getPseudoOp ( ) const
inline

Gets pseudo operation code.

Returns
The pseudo operation associated with the instruction.
Since
1.1.0

◆ getTupleType()

fcml_uint8_t fcml::InstructionDetails::getTupleType ( ) const
inline

Gets avx-512 tuple type.

Since
1.2.0

◆ isOpcodeFieldSBit()

bool fcml::InstructionDetails::isOpcodeFieldSBit ( ) const
inline

Gets opcode field 'S'.

Returns
'S' opcode field.
Since
1.1.0

◆ isOpcodeFieldWBit()

bool fcml::InstructionDetails::isOpcodeFieldWBit ( ) const
inline

Gets opcode field 'W'.

Returns
'W' opcode field.
Since
1.1.0

◆ isPseudoOp()

bool fcml::InstructionDetails::isPseudoOp ( ) const
inline

Gets true is it's a pseudo operation.

Returns
True if the instruction is a pseudo operation.
Since
1.1.0

◆ isShortcut()

bool fcml::InstructionDetails::isShortcut ( ) const
inline

Gets true if it's a shortcut instruction.

Returns
True if it's a shortcut instruction.
Since
1.1.0

◆ setAddrMode()

void fcml::InstructionDetails::setAddrMode ( fcml_uint16_t  addrMode)
inline

Sets instruction form.

Parameters
addrModeAddressing mode.
Since
1.1.0

◆ setInstruction()

void fcml::InstructionDetails::setInstruction ( fcml_en_instruction  instruction)
inline

Gets a new instruction code for the instruction.

Parameters
instructionThe new instruction code.
Since
1.1.0

◆ setInstructionGroup()

void fcml::InstructionDetails::setInstructionGroup ( fcml_uint64_t  instructionGroup)
inline

Sets an instruction group.

See fcml_instructions.h for all available groups.

Parameters
instructionGroupThe instruction group.
Since
1.1.0

◆ setInstructionSize()

void fcml::InstructionDetails::setInstructionSize ( fcml_usize  instructionSize)
inline

Sets the instruction size in bytes.

Parameters
instructionSizeThe instruction size.
Since
1.1.0

◆ setIsPseudoOp()

void fcml::InstructionDetails::setIsPseudoOp ( bool  isPseudoOp)
inline

Sets pseudo operation flag.

Parameters
isPseudoOpTrue if the instruction is a pseudo operation.
Since
1.1.0

◆ setModRmDetails()

void fcml::InstructionDetails::setModRmDetails ( const DecodedModRMDetails modRmDetails)
inline

Sets a new instruction details for the instruction.

Parameters
modRmDetailsThe new instruction details.
Since
1.1.0

◆ setOpcodeFieldSBit()

void fcml::InstructionDetails::setOpcodeFieldSBit ( bool  opcodeFieldSBit)
inline

Sets 'S' field of the opcode byte.

Parameters
opcodeFieldSBit'S' opcode byte field.
Since
1.1.0

◆ setOpcodeFieldWBit()

void fcml::InstructionDetails::setOpcodeFieldWBit ( bool  opcodeFieldWBit)
inline

Sets 'W' field of the opcode byte.

Parameters
opcodeFieldWBit'W' opcode byte field.
Since
1.1.0

◆ setPrefixesDetails()

void fcml::InstructionDetails::setPrefixesDetails ( const PrefixesDetails prefixesDetails)
inline

Sets a new instruction prefixes details.

Parameters
prefixesDetailsThe new prefixes details.
Since
1.1.0

◆ setPseudoOp()

void fcml::InstructionDetails::setPseudoOp ( fcml_en_pseudo_operations  pseudoOp)
inline

Sets pseudo operation for the instruction.

Parameters
pseudoOpThe pseudo operation.
Since
1.1.0

◆ setShortcut()

void fcml::InstructionDetails::setShortcut ( bool  isShortcut)
inline

Marks the instruction as a shortcut.

Parameters
isShortcutTrue if it's a shortcut instruction.
Since
1.1.0

◆ setTupleType()

void fcml::InstructionDetails::setTupleType ( fcml_uint8_t  tupleType)
inline

Sets avx-512 tuple type.

Parameters
isPseudoOpTrue if the instruction is a pseudo operation.
Since
1.2.0

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