BinaryNinja::MediumLevelILInstructionBase Struct Reference

Public Member Functions

MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Public Attributes

Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 

Static Public Attributes

static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ As() [1/2]

MediumLevelILInstructionAccessor< N > & BinaryNinja::MediumLevelILInstructionBase::As ( )
inline

◆ As() [2/2]

const MediumLevelILInstructionAccessor< N > & BinaryNinja::MediumLevelILInstructionBase::As ( ) const
inline

◆ AsConstant()

const MediumLevelILConstantInstruction & BinaryNinja::MediumLevelILInstructionBase::AsConstant ( ) const
inline

◆ AsOneOperand() [1/2]

MediumLevelILOneOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsOneOperand ( )
inline

◆ AsOneOperand() [2/2]

const MediumLevelILOneOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsOneOperand ( ) const
inline

◆ AsTwoOperand() [1/2]

MediumLevelILTwoOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperand ( )
inline

◆ AsTwoOperand() [2/2]

const MediumLevelILTwoOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperand ( ) const
inline

◆ AsTwoOperandWithCarry() [1/2]

MediumLevelILTwoOperandWithCarryInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperandWithCarry ( )
inline

◆ AsTwoOperandWithCarry() [2/2]

const MediumLevelILTwoOperandWithCarryInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperandWithCarry ( ) const
inline

◆ GetAllBranchDependence()

unordered_map< size_t, BNILBranchDependence > MediumLevelILInstructionBase::GetAllBranchDependence ( )

◆ GetBranchDependence() [1/2]

BNILBranchDependence MediumLevelILInstructionBase::GetBranchDependence ( const MediumLevelILInstruction branch)

◆ GetBranchDependence() [2/2]

BNILBranchDependence MediumLevelILInstructionBase::GetBranchDependence ( size_t  branchInstr)

◆ GetFlagValue()

RegisterValue MediumLevelILInstructionBase::GetFlagValue ( uint32_t  flag)

◆ GetFlagValueAfter()

RegisterValue MediumLevelILInstructionBase::GetFlagValueAfter ( uint32_t  flag)

◆ GetHighLevelILExprIndex()

size_t MediumLevelILInstructionBase::GetHighLevelILExprIndex ( ) const

◆ GetHighLevelILInstructionIndex()

size_t MediumLevelILInstructionBase::GetHighLevelILInstructionIndex ( ) const

◆ GetLowLevelIL()

LowLevelILInstruction MediumLevelILInstructionBase::GetLowLevelIL ( ) const

◆ GetLowLevelILExprIndex()

size_t MediumLevelILInstructionBase::GetLowLevelILExprIndex ( ) const

◆ GetLowLevelILInstructionIndex()

size_t MediumLevelILInstructionBase::GetLowLevelILInstructionIndex ( ) const

◆ GetNonSSAExprIndex()

size_t MediumLevelILInstructionBase::GetNonSSAExprIndex ( ) const

◆ GetNonSSAForm()

MediumLevelILInstruction MediumLevelILInstructionBase::GetNonSSAForm ( ) const

◆ GetNonSSAInstructionIndex()

size_t MediumLevelILInstructionBase::GetNonSSAInstructionIndex ( ) const

◆ GetOperands()

MediumLevelILOperandList MediumLevelILInstructionBase::GetOperands ( ) const

◆ GetPossibleFlagValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleFlagValues ( uint32_t  flag)

◆ GetPossibleFlagValuesAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleFlagValuesAfter ( uint32_t  flag)

◆ GetPossibleRegisterValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleRegisterValues ( uint32_t  reg)

◆ GetPossibleRegisterValuesAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleRegisterValuesAfter ( uint32_t  reg)

◆ GetPossibleSSAVarValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleSSAVarValues ( const SSAVariable var)

◆ GetPossibleStackContents()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleStackContents ( int32_t  offset,
size_t  len 
)

◆ GetPossibleStackContentsAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleStackContentsAfter ( int32_t  offset,
size_t  len 
)

◆ GetPossibleValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleValues ( const std::set< BNDataFlowQueryOption > &  options = std::set <BNDataFlowQueryOption>()) const

◆ GetRawOperandAsExpr()

MediumLevelILInstruction MediumLevelILInstructionBase::GetRawOperandAsExpr ( size_t  operand) const

◆ GetRawOperandAsExprList()

MediumLevelILInstructionList MediumLevelILInstructionBase::GetRawOperandAsExprList ( size_t  operand) const

◆ GetRawOperandAsIndex()

size_t MediumLevelILInstructionBase::GetRawOperandAsIndex ( size_t  operand) const

◆ GetRawOperandAsIndexList()

MediumLevelILIndexList MediumLevelILInstructionBase::GetRawOperandAsIndexList ( size_t  operand) const

◆ GetRawOperandAsIndexMap()

MediumLevelILIndexMap MediumLevelILInstructionBase::GetRawOperandAsIndexMap ( size_t  operand) const

◆ GetRawOperandAsInteger()

uint64_t MediumLevelILInstructionBase::GetRawOperandAsInteger ( size_t  operand) const

◆ GetRawOperandAsPartialSSAVariableSource()

SSAVariable MediumLevelILInstructionBase::GetRawOperandAsPartialSSAVariableSource ( size_t  operand) const

◆ GetRawOperandAsSSAVariable()

SSAVariable MediumLevelILInstructionBase::GetRawOperandAsSSAVariable ( size_t  operand) const

◆ GetRawOperandAsSSAVariableList()

MediumLevelILSSAVariableList MediumLevelILInstructionBase::GetRawOperandAsSSAVariableList ( size_t  operand) const

◆ GetRawOperandAsVariable()

Variable MediumLevelILInstructionBase::GetRawOperandAsVariable ( size_t  operand) const

◆ GetRawOperandAsVariableList()

MediumLevelILVariableList MediumLevelILInstructionBase::GetRawOperandAsVariableList ( size_t  operand) const

◆ GetRegisterValue()

RegisterValue MediumLevelILInstructionBase::GetRegisterValue ( uint32_t  reg)

◆ GetRegisterValueAfter()

RegisterValue MediumLevelILInstructionBase::GetRegisterValueAfter ( uint32_t  reg)

◆ GetSSAExprIndex()

size_t MediumLevelILInstructionBase::GetSSAExprIndex ( ) const

◆ GetSSAForm()

MediumLevelILInstruction MediumLevelILInstructionBase::GetSSAForm ( ) const

◆ GetSSAInstructionIndex()

size_t MediumLevelILInstructionBase::GetSSAInstructionIndex ( ) const

◆ GetSSAMemoryVersion()

size_t MediumLevelILInstructionBase::GetSSAMemoryVersion ( )

◆ GetSSAVarVersion()

size_t MediumLevelILInstructionBase::GetSSAVarVersion ( const Variable var)

◆ GetStackContents()

RegisterValue MediumLevelILInstructionBase::GetStackContents ( int32_t  offset,
size_t  len 
)

◆ GetStackContentsAfter()

RegisterValue MediumLevelILInstructionBase::GetStackContentsAfter ( int32_t  offset,
size_t  len 
)

◆ GetType()

Confidence< Ref< Type > > MediumLevelILInstructionBase::GetType ( ) const

◆ GetValue()

RegisterValue MediumLevelILInstructionBase::GetValue ( ) const

◆ GetVariableForFlag()

Variable MediumLevelILInstructionBase::GetVariableForFlag ( uint32_t  flag)

◆ GetVariableForRegister()

Variable MediumLevelILInstructionBase::GetVariableForRegister ( uint32_t  reg)

◆ GetVariableForStackLocation()

Variable MediumLevelILInstructionBase::GetVariableForStackLocation ( int64_t  offset)

◆ HasLowLevelIL()

bool MediumLevelILInstructionBase::HasLowLevelIL ( ) const

◆ MarkInstructionForRemoval()

void MediumLevelILInstructionBase::MarkInstructionForRemoval ( )

◆ Replace()

void MediumLevelILInstructionBase::Replace ( ExprId  expr)

◆ UpdateRawOperand()

void MediumLevelILInstructionBase::UpdateRawOperand ( size_t  operandIndex,
ExprId  value 
)

◆ UpdateRawOperandAsExprList() [1/2]

void BinaryNinja::MediumLevelILInstructionBase::UpdateRawOperandAsExprList ( size_t  operandIndex,
const std::vector< MediumLevelILInstruction > &  exprs 
)

◆ UpdateRawOperandAsExprList() [2/2]

void BinaryNinja::MediumLevelILInstructionBase::UpdateRawOperandAsExprList ( size_t  operandIndex,
const std::vector< size_t > &  exprs 
)

◆ UpdateRawOperandAsSSAVariableList()

void MediumLevelILInstructionBase::UpdateRawOperandAsSSAVariableList ( size_t  operandIndex,
const std::vector< SSAVariable > &  vars 
)

Member Data Documentation

◆ exprIndex

size_t BinaryNinja::MediumLevelILInstructionBase::exprIndex

◆ function

Ref<MediumLevelILFunction> BinaryNinja::MediumLevelILInstructionBase::function

◆ instructionIndex

size_t BinaryNinja::MediumLevelILInstructionBase::instructionIndex

◆ operandTypeForUsage

unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandType > MediumLevelILInstructionBase::operandTypeForUsage
static

◆ operationOperandIndex

unordered_map< BNMediumLevelILOperation, unordered_map< MediumLevelILOperandUsage, size_t > > MediumLevelILInstructionBase::operationOperandIndex = GetOperandIndexForOperandUsages()
static

◆ operationOperandUsage

unordered_map< BNMediumLevelILOperation, vector< MediumLevelILOperandUsage > > MediumLevelILInstructionBase::operationOperandUsage
static

The documentation for this struct was generated from the following files: