highlevelilinstruction.h File Reference

Classes

struct  BinaryNinja::HighLevelILInstructionAccessor< N >
 
struct  std::hash< BNHighLevelILOperation >
 
struct  std::hash< BinaryNinja::HighLevelILOperandUsage >
 
class  BinaryNinja::HighLevelILInstructionAccessException
 
class  BinaryNinja::HighLevelILIntegerList
 
class  BinaryNinja::HighLevelILIndexList
 
class  BinaryNinja::HighLevelILInstructionList
 
class  BinaryNinja::HighLevelILSSAVariableList
 
struct  BinaryNinja::HighLevelILInstructionBase
 
struct  BinaryNinja::HighLevelILInstruction
 
class  BinaryNinja::HighLevelILOperand
 
class  BinaryNinja::HighLevelILOperandList
 
struct  BinaryNinja::HighLevelILConstantInstruction
 
struct  BinaryNinja::HighLevelILOneOperandInstruction
 
struct  BinaryNinja::HighLevelILTwoOperandInstruction
 
struct  BinaryNinja::HighLevelILTwoOperandWithCarryInstruction
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_BLOCK >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_IF >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_WHILE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_WHILE_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DO_WHILE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DO_WHILE_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FOR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FOR_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SWITCH >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CASE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_GOTO >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_LABEL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_RET >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR_DECLARE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR_INIT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR_INIT_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ASSIGN >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ASSIGN_UNPACK >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ASSIGN_MEM_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ASSIGN_UNPACK_MEM_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_STRUCT_FIELD >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DEREF_FIELD >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DEREF_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DEREF_FIELD_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ARRAY_INDEX >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ARRAY_INDEX_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SPLIT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_VAR_PHI >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MEM_PHI >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_JUMP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CALL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SYSCALL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_TAILCALL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CALL_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SYSCALL_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_INTRINSIC >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_INTRINSIC_SSA >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_TRAP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_EXTERN_PTR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_NOP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_BREAK >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CONTINUE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_NORET >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_BP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_UNDEF >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_UNIMPL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CONST >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CONST_PTR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FLOAT_CONST >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_IMPORT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ADD >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SUB >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_AND >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_OR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_XOR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_LSL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_LSR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ASR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ROL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ROR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MUL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MULU_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MULS_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DIVU >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DIVS >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MODU >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MODS >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DIVU_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DIVS_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MODU_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_MODS_DP >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_E >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_NE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_SLT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_ULT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_SLE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_ULE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_SGE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_UGE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_SGT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CMP_UGT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_TEST_BIT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ADD_OVERFLOW >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FADD >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FSUB >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FMUL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FDIV >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_E >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_NE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_LT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_LE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_GE >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_GT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_O >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FCMP_UO >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ADC >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SBB >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_RLC >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_RRC >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_DEREF >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ADDRESS_OF >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_NEG >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_NOT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_SX >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ZX >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_LOW_PART >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_BOOL_TO_INT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_UNIMPL_MEM >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FSQRT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FNEG >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FABS >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FLOAT_TO_INT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_INT_TO_FLOAT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FLOAT_CONV >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_ROUND_TO_INT >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FLOOR >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_CEIL >
 
struct  BinaryNinja::HighLevelILInstructionAccessor< HLIL_FTRUNC >
 

Namespaces

namespace  BinaryNinja
 
namespace  std
 

Macros

#define _STD_VECTOR   std::vector
 
#define _STD_SET   std::set
 
#define _STD_UNORDERED_MAP   std::unordered_map
 

Enumerations

enum  BinaryNinja::HighLevelILOperandType {
  BinaryNinja::IntegerHighLevelOperand , BinaryNinja::IndexHighLevelOperand , BinaryNinja::IntrinsicHighLevelOperand , BinaryNinja::ExprHighLevelOperand ,
  BinaryNinja::VariableHighLevelOperand , BinaryNinja::SSAVariableHighLevelOperand , BinaryNinja::ExprListHighLevelOperand , BinaryNinja::SSAVariableListHighLevelOperand ,
  BinaryNinja::IndexListHighLevelOperand
}
 
enum  BinaryNinja::HighLevelILOperandUsage {
  BinaryNinja::SourceExprHighLevelOperandUsage , BinaryNinja::VariableHighLevelOperandUsage , BinaryNinja::DestVariableHighLevelOperandUsage , BinaryNinja::SSAVariableHighLevelOperandUsage ,
  BinaryNinja::DestSSAVariableHighLevelOperandUsage , BinaryNinja::DestExprHighLevelOperandUsage , BinaryNinja::LeftExprHighLevelOperandUsage , BinaryNinja::RightExprHighLevelOperandUsage ,
  BinaryNinja::CarryExprHighLevelOperandUsage , BinaryNinja::IndexExprHighLevelOperandUsage , BinaryNinja::ConditionExprHighLevelOperandUsage , BinaryNinja::ConditionPhiExprHighLevelOperandUsage ,
  BinaryNinja::TrueExprHighLevelOperandUsage , BinaryNinja::FalseExprHighLevelOperandUsage , BinaryNinja::LoopExprHighLevelOperandUsage , BinaryNinja::InitExprHighLevelOperandUsage ,
  BinaryNinja::UpdateExprHighLevelOperandUsage , BinaryNinja::DefaultExprHighLevelOperandUsage , BinaryNinja::HighExprHighLevelOperandUsage , BinaryNinja::LowExprHighLevelOperandUsage ,
  BinaryNinja::OffsetHighLevelOperandUsage , BinaryNinja::MemberIndexHighLevelOperandUsage , BinaryNinja::ConstantHighLevelOperandUsage , BinaryNinja::VectorHighLevelOperandUsage ,
  BinaryNinja::IntrinsicHighLevelOperandUsage , BinaryNinja::TargetHighLevelOperandUsage , BinaryNinja::ParameterExprsHighLevelOperandUsage , BinaryNinja::SourceExprsHighLevelOperandUsage ,
  BinaryNinja::DestExprsHighLevelOperandUsage , BinaryNinja::BlockExprsHighLevelOperandUsage , BinaryNinja::CasesHighLevelOperandUsage , BinaryNinja::ValueExprsHighLevelOperandUsage ,
  BinaryNinja::SourceSSAVariablesHighLevelOperandUsage , BinaryNinja::SourceMemoryVersionHighLevelOperandUsage , BinaryNinja::SourceMemoryVersionsHighLevelOperandUsage , BinaryNinja::DestMemoryVersionHighLevelOperandUsage
}
 

Class Documentation

◆ BinaryNinja::HighLevelILInstructionAccessor

struct BinaryNinja::HighLevelILInstructionAccessor

Macro Definition Documentation

◆ _STD_SET

#define _STD_SET   std::set

◆ _STD_UNORDERED_MAP

#define _STD_UNORDERED_MAP   std::unordered_map

◆ _STD_VECTOR

#define _STD_VECTOR   std::vector