BinaryNinja::HighLevelILInstructionBase Struct Reference

Public Member Functions

HighLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
HighLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
HighLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
HighLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
HighLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsInteger (size_t operandIndex, uint64_t value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< HighLevelILInstruction > &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 GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
HighLevelILInstruction GetSSAForm () const
 
HighLevelILInstruction GetNonSSAForm () const
 
size_t GetMediumLevelILExprIndex () const
 
bool HasMediumLevelIL () const
 
MediumLevelILInstruction GetMediumLevelIL () const
 
MediumLevelILInstruction GetMediumLevelILSSAForm () const
 
void Replace (ExprId expr)
 
size_t GetInstructionIndex () const
 
HighLevelILInstruction GetInstruction () const
 
HighLevelILInstruction AsAST () const
 
HighLevelILInstruction AsNonAST () const
 
bool HasParent () const
 
HighLevelILInstruction GetParent () const
 
template<BNHighLevelILOperation N>
HighLevelILInstructionAccessor< N > & As ()
 
HighLevelILOneOperandInstructionAsOneOperand ()
 
HighLevelILTwoOperandInstructionAsTwoOperand ()
 
HighLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNHighLevelILOperation N>
const HighLevelILInstructionAccessor< N > & As () const
 
const HighLevelILConstantInstructionAsConstant () const
 
const HighLevelILOneOperandInstructionAsOneOperand () const
 
const HighLevelILTwoOperandInstructionAsTwoOperand () const
 
const HighLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Public Attributes

Ref< HighLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
bool ast
 
- Public Attributes inherited from BNHighLevelILInstruction
BNHighLevelILOperation operation
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
size_t parent
 

Static Public Attributes

static std::unordered_map< HighLevelILOperandUsage, HighLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNHighLevelILOperation, std::vector< HighLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNHighLevelILOperation, std::unordered_map< HighLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ As() [1/2]

HighLevelILInstructionAccessor< N > & BinaryNinja::HighLevelILInstructionBase::As ( )
inline

◆ As() [2/2]

const HighLevelILInstructionAccessor< N > & BinaryNinja::HighLevelILInstructionBase::As ( ) const
inline

◆ AsAST()

HighLevelILInstruction HighLevelILInstructionBase::AsAST ( ) const

◆ AsConstant()

const HighLevelILConstantInstruction & BinaryNinja::HighLevelILInstructionBase::AsConstant ( ) const
inline

◆ AsNonAST()

HighLevelILInstruction HighLevelILInstructionBase::AsNonAST ( ) const

◆ AsOneOperand() [1/2]

HighLevelILOneOperandInstruction & BinaryNinja::HighLevelILInstructionBase::AsOneOperand ( )
inline

◆ AsOneOperand() [2/2]

const HighLevelILOneOperandInstruction & BinaryNinja::HighLevelILInstructionBase::AsOneOperand ( ) const
inline

◆ AsTwoOperand() [1/2]

HighLevelILTwoOperandInstruction & BinaryNinja::HighLevelILInstructionBase::AsTwoOperand ( )
inline

◆ AsTwoOperand() [2/2]

const HighLevelILTwoOperandInstruction & BinaryNinja::HighLevelILInstructionBase::AsTwoOperand ( ) const
inline

◆ AsTwoOperandWithCarry() [1/2]

HighLevelILTwoOperandWithCarryInstruction & BinaryNinja::HighLevelILInstructionBase::AsTwoOperandWithCarry ( )
inline

◆ AsTwoOperandWithCarry() [2/2]

const HighLevelILTwoOperandWithCarryInstruction & BinaryNinja::HighLevelILInstructionBase::AsTwoOperandWithCarry ( ) const
inline

◆ GetInstruction()

HighLevelILInstruction HighLevelILInstructionBase::GetInstruction ( ) const

◆ GetInstructionIndex()

size_t HighLevelILInstructionBase::GetInstructionIndex ( ) const

◆ GetMediumLevelIL()

MediumLevelILInstruction HighLevelILInstructionBase::GetMediumLevelIL ( ) const

◆ GetMediumLevelILExprIndex()

size_t HighLevelILInstructionBase::GetMediumLevelILExprIndex ( ) const

◆ GetMediumLevelILSSAForm()

MediumLevelILInstruction HighLevelILInstructionBase::GetMediumLevelILSSAForm ( ) const

◆ GetNonSSAExprIndex()

size_t HighLevelILInstructionBase::GetNonSSAExprIndex ( ) const

◆ GetNonSSAForm()

HighLevelILInstruction HighLevelILInstructionBase::GetNonSSAForm ( ) const

◆ GetOperands()

HighLevelILOperandList HighLevelILInstructionBase::GetOperands ( ) const

◆ GetParent()

HighLevelILInstruction HighLevelILInstructionBase::GetParent ( ) const

◆ GetPossibleValues()

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

◆ GetRawOperandAsExpr()

HighLevelILInstruction HighLevelILInstructionBase::GetRawOperandAsExpr ( size_t  operand) const

◆ GetRawOperandAsExprList()

HighLevelILInstructionList HighLevelILInstructionBase::GetRawOperandAsExprList ( size_t  operand) const

◆ GetRawOperandAsIndex()

size_t HighLevelILInstructionBase::GetRawOperandAsIndex ( size_t  operand) const

◆ GetRawOperandAsIndexList()

HighLevelILIndexList HighLevelILInstructionBase::GetRawOperandAsIndexList ( size_t  operand) const

◆ GetRawOperandAsInteger()

uint64_t HighLevelILInstructionBase::GetRawOperandAsInteger ( size_t  operand) const

◆ GetRawOperandAsSSAVariable()

SSAVariable HighLevelILInstructionBase::GetRawOperandAsSSAVariable ( size_t  operand) const

◆ GetRawOperandAsSSAVariableList()

HighLevelILSSAVariableList HighLevelILInstructionBase::GetRawOperandAsSSAVariableList ( size_t  operand) const

◆ GetRawOperandAsVariable()

Variable HighLevelILInstructionBase::GetRawOperandAsVariable ( size_t  operand) const

◆ GetSSAExprIndex()

size_t HighLevelILInstructionBase::GetSSAExprIndex ( ) const

◆ GetSSAForm()

HighLevelILInstruction HighLevelILInstructionBase::GetSSAForm ( ) const

◆ GetType()

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

◆ GetValue()

RegisterValue HighLevelILInstructionBase::GetValue ( ) const

◆ HasMediumLevelIL()

bool HighLevelILInstructionBase::HasMediumLevelIL ( ) const

◆ HasParent()

bool HighLevelILInstructionBase::HasParent ( ) const

◆ Replace()

void HighLevelILInstructionBase::Replace ( ExprId  expr)

◆ UpdateRawOperand()

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

◆ UpdateRawOperandAsExprList() [1/2]

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

◆ UpdateRawOperandAsExprList() [2/2]

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

◆ UpdateRawOperandAsInteger()

void HighLevelILInstructionBase::UpdateRawOperandAsInteger ( size_t  operandIndex,
uint64_t  value 
)

◆ UpdateRawOperandAsSSAVariableList()

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

Member Data Documentation

◆ ast

bool BinaryNinja::HighLevelILInstructionBase::ast

◆ exprIndex

size_t BinaryNinja::HighLevelILInstructionBase::exprIndex

◆ function

Ref<HighLevelILFunction> BinaryNinja::HighLevelILInstructionBase::function

◆ instructionIndex

size_t BinaryNinja::HighLevelILInstructionBase::instructionIndex

◆ operandTypeForUsage

unordered_map< HighLevelILOperandUsage, HighLevelILOperandType > HighLevelILInstructionBase::operandTypeForUsage
static
Initial value:
= {
@ IndexListHighLevelOperand
Definition: highlevelilinstruction.h:65
@ VariableHighLevelOperand
Definition: highlevelilinstruction.h:61
@ SSAVariableHighLevelOperand
Definition: highlevelilinstruction.h:62
@ SSAVariableListHighLevelOperand
Definition: highlevelilinstruction.h:64
@ ExprHighLevelOperand
Definition: highlevelilinstruction.h:60
@ IntrinsicHighLevelOperand
Definition: highlevelilinstruction.h:59
@ ExprListHighLevelOperand
Definition: highlevelilinstruction.h:63
@ IndexHighLevelOperand
Definition: highlevelilinstruction.h:58
@ IntegerHighLevelOperand
Definition: highlevelilinstruction.h:57
@ DefaultExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:87
@ RightExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:77
@ IndexExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:79
@ HighExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:88
@ LowExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:89
@ VariableHighLevelOperandUsage
Definition: highlevelilinstruction.h:71
@ SourceExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:70
@ FalseExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:83
@ InitExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:85
@ IntrinsicHighLevelOperandUsage
Definition: highlevelilinstruction.h:94
@ DestExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:75
@ DestVariableHighLevelOperandUsage
Definition: highlevelilinstruction.h:72
@ SourceMemoryVersionsHighLevelOperandUsage
Definition: highlevelilinstruction.h:104
@ ParameterExprsHighLevelOperandUsage
Definition: highlevelilinstruction.h:96
@ CasesHighLevelOperandUsage
Definition: highlevelilinstruction.h:100
@ SSAVariableHighLevelOperandUsage
Definition: highlevelilinstruction.h:73
@ UpdateExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:86
@ TargetHighLevelOperandUsage
Definition: highlevelilinstruction.h:95
@ OffsetHighLevelOperandUsage
Definition: highlevelilinstruction.h:90
@ ConditionPhiExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:81
@ MemberIndexHighLevelOperandUsage
Definition: highlevelilinstruction.h:91
@ DestExprsHighLevelOperandUsage
Definition: highlevelilinstruction.h:98
@ VectorHighLevelOperandUsage
Definition: highlevelilinstruction.h:93
@ SourceMemoryVersionHighLevelOperandUsage
Definition: highlevelilinstruction.h:103
@ LoopExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:84
@ ConstantHighLevelOperandUsage
Definition: highlevelilinstruction.h:92
@ CarryExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:78
@ ConditionExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:80
@ ValueExprsHighLevelOperandUsage
Definition: highlevelilinstruction.h:101
@ DestMemoryVersionHighLevelOperandUsage
Definition: highlevelilinstruction.h:105
@ DestSSAVariableHighLevelOperandUsage
Definition: highlevelilinstruction.h:74
@ BlockExprsHighLevelOperandUsage
Definition: highlevelilinstruction.h:99
@ SourceSSAVariablesHighLevelOperandUsage
Definition: highlevelilinstruction.h:102
@ SourceExprsHighLevelOperandUsage
Definition: highlevelilinstruction.h:97
@ TrueExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:82
@ LeftExprHighLevelOperandUsage
Definition: highlevelilinstruction.h:76

◆ operationOperandIndex

unordered_map< BNHighLevelILOperation, unordered_map< HighLevelILOperandUsage, size_t > > HighLevelILInstructionBase::operationOperandIndex = GetOperandIndexForOperandUsages()
static

◆ operationOperandUsage

unordered_map< BNHighLevelILOperation, vector< HighLevelILOperandUsage > > HighLevelILInstructionBase::operationOperandUsage
static

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