lowlevelilinstruction.h File Reference

Classes

struct  BinaryNinja::LowLevelILInstructionAccessor< N >
 
struct  BinaryNinja::RegisterOrFlag
 
struct  BinaryNinja::SSARegister
 
struct  BinaryNinja::SSARegisterStack
 
struct  BinaryNinja::SSAFlag
 
struct  BinaryNinja::SSARegisterOrFlag
 
struct  std::hash< BinaryNinja::SSARegister >
 
struct  std::hash< BinaryNinja::SSARegisterStack >
 
struct  std::hash< BinaryNinja::SSAFlag >
 
struct  std::hash< BNLowLevelILOperation >
 
struct  std::hash< BinaryNinja::LowLevelILOperandUsage >
 
class  BinaryNinja::LowLevelILInstructionAccessException
 
class  BinaryNinja::LowLevelILIntegerList
 
class  BinaryNinja::LowLevelILIndexList
 
class  BinaryNinja::LowLevelILIndexMap
 
class  BinaryNinja::LowLevelILInstructionList
 
class  BinaryNinja::LowLevelILRegisterOrFlagList
 
class  BinaryNinja::LowLevelILSSARegisterList
 
class  BinaryNinja::LowLevelILSSARegisterStackList
 
class  BinaryNinja::LowLevelILSSAFlagList
 
class  BinaryNinja::LowLevelILSSARegisterOrFlagList
 
struct  BinaryNinja::LowLevelILInstructionBase
 
struct  BinaryNinja::LowLevelILInstruction
 
class  BinaryNinja::LowLevelILOperand
 
class  BinaryNinja::LowLevelILOperandList
 
struct  BinaryNinja::LowLevelILConstantInstruction
 
struct  BinaryNinja::LowLevelILOffsetInstruction
 
struct  BinaryNinja::LowLevelILOneOperandInstruction
 
struct  BinaryNinja::LowLevelILTwoOperandInstruction
 
struct  BinaryNinja::LowLevelILTwoOperandWithCarryInstruction
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_SPLIT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_SSA_PARTIAL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_SPLIT_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_REL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_PUSH >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_REL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_ABS_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_FLAG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SET_FLAG_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_LOAD >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_LOAD_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_STORE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_STORE_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_SSA_PARTIAL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_REL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_POP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_REL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_ABS_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_ABS_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_BIT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_BIT_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_SPLIT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_SPLIT_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_JUMP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_JUMP_TO >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CALL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CALL_STACK_ADJUST >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_TAILCALL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_RET >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_IF >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_GOTO >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_COND >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_GROUP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_TRAP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CALL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SYSCALL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_TAILCALL_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_INTRINSIC >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_INTRINSIC_SSA >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_PHI >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_REG_STACK_PHI >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLAG_PHI >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MEM_PHI >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_EXTERN_PTR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_NOP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_POP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_NORET >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SYSCALL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_BP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_UNDEF >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_UNIMPL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CONST >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CONST_PTR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLOAT_CONST >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ADD >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SUB >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_AND >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_OR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_XOR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_LSL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_LSR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ASR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ROL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ROR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MUL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MULU_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MULS_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_DIVU >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_DIVS >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MODU >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MODS >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_DIVU_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_DIVS_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MODU_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_MODS_DP >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_E >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_NE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_SLT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_ULT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_SLE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_ULE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_SGE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_UGE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_SGT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CMP_UGT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_TEST_BIT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ADD_OVERFLOW >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FADD >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FSUB >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FMUL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FDIV >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_E >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_NE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_LT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_LE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_GE >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_GT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_O >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FCMP_UO >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ADC >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SBB >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_RLC >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_RRC >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_PUSH >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_NEG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_NOT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_SX >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ZX >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_LOW_PART >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_BOOL_TO_INT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_UNIMPL_MEM >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FSQRT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FNEG >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FABS >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLOAT_TO_INT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_INT_TO_FLOAT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLOAT_CONV >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_ROUND_TO_INT >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FLOOR >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_CEIL >
 
struct  BinaryNinja::LowLevelILInstructionAccessor< LLIL_FTRUNC >
 

Namespaces

namespace  BinaryNinja
 
namespace  std
 

Macros

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

Enumerations

enum  BinaryNinja::LowLevelILOperandType {
  BinaryNinja::IntegerLowLevelOperand , BinaryNinja::IndexLowLevelOperand , BinaryNinja::ExprLowLevelOperand , BinaryNinja::RegisterLowLevelOperand ,
  BinaryNinja::RegisterStackLowLevelOperand , BinaryNinja::FlagLowLevelOperand , BinaryNinja::FlagConditionLowLevelOperand , BinaryNinja::IntrinsicLowLevelOperand ,
  BinaryNinja::SemanticFlagClassLowLevelOperand , BinaryNinja::SemanticFlagGroupLowLevelOperand , BinaryNinja::SSARegisterLowLevelOperand , BinaryNinja::SSARegisterStackLowLevelOperand ,
  BinaryNinja::SSAFlagLowLevelOperand , BinaryNinja::IndexListLowLevelOperand , BinaryNinja::IndexMapLowLevelOperand , BinaryNinja::ExprListLowLevelOperand ,
  BinaryNinja::RegisterOrFlagListLowLevelOperand , BinaryNinja::SSARegisterListLowLevelOperand , BinaryNinja::SSARegisterStackListLowLevelOperand , BinaryNinja::SSAFlagListLowLevelOperand ,
  BinaryNinja::SSARegisterOrFlagListLowLevelOperand , BinaryNinja::RegisterStackAdjustmentsLowLevelOperand
}
 
enum  BinaryNinja::LowLevelILOperandUsage {
  BinaryNinja::SourceExprLowLevelOperandUsage , BinaryNinja::SourceRegisterLowLevelOperandUsage , BinaryNinja::SourceRegisterStackLowLevelOperandUsage , BinaryNinja::SourceFlagLowLevelOperandUsage ,
  BinaryNinja::SourceSSARegisterLowLevelOperandUsage , BinaryNinja::SourceSSARegisterStackLowLevelOperandUsage , BinaryNinja::SourceSSAFlagLowLevelOperandUsage , BinaryNinja::DestExprLowLevelOperandUsage ,
  BinaryNinja::DestRegisterLowLevelOperandUsage , BinaryNinja::DestRegisterStackLowLevelOperandUsage , BinaryNinja::DestFlagLowLevelOperandUsage , BinaryNinja::DestSSARegisterLowLevelOperandUsage ,
  BinaryNinja::DestSSARegisterStackLowLevelOperandUsage , BinaryNinja::DestSSAFlagLowLevelOperandUsage , BinaryNinja::SemanticFlagClassLowLevelOperandUsage , BinaryNinja::SemanticFlagGroupLowLevelOperandUsage ,
  BinaryNinja::PartialRegisterLowLevelOperandUsage , BinaryNinja::PartialSSARegisterStackSourceLowLevelOperandUsage , BinaryNinja::StackSSARegisterLowLevelOperandUsage , BinaryNinja::StackMemoryVersionLowLevelOperandUsage ,
  BinaryNinja::TopSSARegisterLowLevelOperandUsage , BinaryNinja::LeftExprLowLevelOperandUsage , BinaryNinja::RightExprLowLevelOperandUsage , BinaryNinja::CarryExprLowLevelOperandUsage ,
  BinaryNinja::ConditionExprLowLevelOperandUsage , BinaryNinja::HighRegisterLowLevelOperandUsage , BinaryNinja::HighSSARegisterLowLevelOperandUsage , BinaryNinja::LowRegisterLowLevelOperandUsage ,
  BinaryNinja::LowSSARegisterLowLevelOperandUsage , BinaryNinja::IntrinsicLowLevelOperandUsage , BinaryNinja::ConstantLowLevelOperandUsage , BinaryNinja::VectorLowLevelOperandUsage ,
  BinaryNinja::StackAdjustmentLowLevelOperandUsage , BinaryNinja::TargetLowLevelOperandUsage , BinaryNinja::TrueTargetLowLevelOperandUsage , BinaryNinja::FalseTargetLowLevelOperandUsage ,
  BinaryNinja::BitIndexLowLevelOperandUsage , BinaryNinja::SourceMemoryVersionLowLevelOperandUsage , BinaryNinja::DestMemoryVersionLowLevelOperandUsage , BinaryNinja::FlagConditionLowLevelOperandUsage ,
  BinaryNinja::OutputSSARegistersLowLevelOperandUsage , BinaryNinja::OutputMemoryVersionLowLevelOperandUsage , BinaryNinja::ParameterExprsLowLevelOperandUsage , BinaryNinja::SourceSSARegistersLowLevelOperandUsage ,
  BinaryNinja::SourceSSARegisterStacksLowLevelOperandUsage , BinaryNinja::SourceSSAFlagsLowLevelOperandUsage , BinaryNinja::OutputRegisterOrFlagListLowLevelOperandUsage , BinaryNinja::OutputSSARegisterOrFlagListLowLevelOperandUsage ,
  BinaryNinja::SourceMemoryVersionsLowLevelOperandUsage , BinaryNinja::TargetsLowLevelOperandUsage , BinaryNinja::RegisterStackAdjustmentsLowLevelOperandUsage , BinaryNinja::OffsetLowLevelOperandUsage
}
 

Class Documentation

◆ BinaryNinja::LowLevelILInstructionAccessor

struct BinaryNinja::LowLevelILInstructionAccessor

Macro Definition Documentation

◆ _STD_MAP

#define _STD_MAP   std::map

◆ _STD_SET

#define _STD_SET   std::set

◆ _STD_UNORDERED_MAP

#define _STD_UNORDERED_MAP   std::unordered_map

◆ _STD_VECTOR

#define _STD_VECTOR   std::vector