Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions | Variables
ins_api_xed_ia32.cpp File Reference
#include "level_base_with_ia32_ins.H"
#include "level_core_with_ia32_ins.H"

Functions

KNOB< BOOL > LEVEL_CORE::KnobVirtualSegments (KNOB_MODE_OVERWRITE,"supported:region","virtual_segments", KNOB_ONLY_ON_UNIX,"Virtual access to segment registers\n")
 
KNOB< BOOL > LEVEL_CORE::KnobSegmentEffectiveAddresses (KNOB_MODE_WRITEONCE,"supported:region","segment_ea","1","Computation of effective addresses with seg override\n")
 
UINT LEVEL_CORE::INS_ImmediateWidthBytes (INS ins)
 
BOOL LEVEL_CORE::REG_IsRewrittenSegmentReg (REG reg)
 
REG LEVEL_CORE::INS_IsSimpleRegIndirectWrite (INS ins)
 
LOCALINLINE xed_iclass_enum_t LEVEL_CORE::INS_Iclass (const INS ins)
 
LOCALINLINE BOOL LEVEL_CORE::INS_IclassTest (const INS ins, xed_iclass_enum_t iclass)
 
LOCALINLINE BOOL LEVEL_CORE::INS_IclassTest (const INS ins, xed_iclass_enum_t iclass1, xed_iclass_enum_t iclass2)
 
LOCALINLINE BOOL LEVEL_CORE::INS_CategoryTest (const INS ins, xed_category_enum_t category)
 
LOCALINLINE BOOL LEVEL_CORE::INS_CategoryTest (const INS ins, xed_category_enum_t category1, xed_category_enum_t category2)
 
INT32 LEVEL_CORE::INS_Category (const INS ins)
 
INT32 LEVEL_CORE::INS_Extension (const INS ins)
 
REG LEVEL_CORE::INS_IsSimpleRegIndirectRead (INS ins)
 
UINT32 LEVEL_CORE::INS_EffectiveAddressWidth (INS ins)
 
USIZE LEVEL_CORE::INS_MemoryOperandSize (INS ins, UINT32 memoryOp)
 
USIZE LEVEL_CORE::INS_MemoryWriteSize (INS ins)
 
PREDICATE LEVEL_CORE::INS_GetPredicate (INS ins)
 
USIZE LEVEL_CORE::INS_MemoryReadSize (INS ins)
 
BOOL LEVEL_CORE::INS_IsMemoryRead (INS ins)
 
BOOL LEVEL_CORE::INS_IsMemoryWrite (INS ins)
 
BOOL LEVEL_CORE::INS_HasMemoryRead2 (INS ins)
 
BOOL LEVEL_CORE::INS_HasFallThrough (INS ins)
 
BOOL LEVEL_CORE::INS_IsSysenter (INS ins)
 
BOOL LEVEL_CORE::INS_IsXbegin (INS ins)
 
BOOL LEVEL_CORE::INS_IsXend (INS ins)
 
BOOL LEVEL_CORE::INS_IsLea (INS ins)
 
BOOL LEVEL_CORE::INS_IsNop (INS ins)
 
string LEVEL_CORE::OPCODE_StringShort (UINT32 opcode)
 
string LEVEL_CORE::INS_Mnemonic (INS ins)
 
BOOL LEVEL_CORE::INS_IsBblTerminator (INS ins)
 
BOOL LEVEL_CORE::INS_IsBranch (INS ins)
 
BOOL LEVEL_CORE::INS_IsDirectBranch (INS ins)
 
BOOL LEVEL_CORE::INS_IsDirectCall (INS ins)
 
BOOL LEVEL_CORE::INS_IsDirectBranchOrCall (INS ins)
 
BOOL LEVEL_CORE::INS_IsHalt (INS ins)
 
BOOL LEVEL_CORE::INS_IsBranchOrCall (INS ins)
 
BOOL LEVEL_CORE::INS_Stutters (INS ins)
 
BOOL LEVEL_CORE::INS_IsPcMaterialization (INS ins)
 
BOOL LEVEL_CORE::INS_IsCall (INS ins)
 
BOOL LEVEL_CORE::INS_IsFarCall (INS ins)
 
BOOL LEVEL_CORE::INS_IsFarJump (INS ins)
 
BOOL LEVEL_CORE::INS_IsDirectFarJump (INS ins)
 
BOOL LEVEL_CORE::INS_IsAvx (INS ins)
 
BOOL LEVEL_CORE::INS_IsVgather (INS ins)
 
BOOL LEVEL_CORE::INS_IsVscatter (INS ins)
 
BOOL LEVEL_CORE::INS_HasMemoryVector (INS ins)
 
BOOL LEVEL_CORE::INS_IsSse (INS ins)
 
VOID LEVEL_CORE::INS_GetFarPointer (INS ins, UINT16 &segment_selector, UINT32 &displacement)
 
BOOL LEVEL_CORE::INS_IsProcedureCall (INS ins)
 
BOOL LEVEL_CORE::XED_INS_IsMultimedia (INS ins)
 
BOOL LEVEL_CORE::INS_IsFloat (INS ins)
 
BOOL LEVEL_CORE::INS_IsFxsave (INS ins)
 
BOOL LEVEL_CORE::INS_IsFxrestore (INS ins)
 
BOOL LEVEL_CORE::INS_IsXsave (INS ins)
 
BOOL LEVEL_CORE::INS_IsXrestore (INS ins)
 
BOOL LEVEL_CORE::INS_IsCmov (INS ins)
 
BOOL LEVEL_CORE::INS_IsFCmov (INS ins)
 
BOOL LEVEL_CORE::INS_IsBitTest (INS ins)
 
BOOL LEVEL_CORE::INS_IsEnter (INS ins)
 
BOOL LEVEL_CORE::INS_IsCmps (INS ins)
 
BOOL LEVEL_CORE::INS_IsScas (INS ins)
 
BOOL LEVEL_CORE::INS_IsJZ (INS ins)
 
BOOL LEVEL_CORE::INS_IsJNZ (INS ins)
 
BOOL LEVEL_CORE::INS_IsJCXZ (INS ins)
 
BOOL LEVEL_CORE::INS_IsLoopType (const INS ins)
 
BOOL LEVEL_CORE::INS_IsLoop (INS ins)
 
BOOL LEVEL_CORE::INS_IsLoope (INS ins)
 
BOOL LEVEL_CORE::INS_IsLoopne (INS ins)
 
BOOL LEVEL_CORE::INS_IsLeave (INS ins)
 
BOOL LEVEL_CORE::INS_IsBsr (INS ins)
 
BOOL LEVEL_CORE::INS_IsUJmp (INS ins)
 
BOOL LEVEL_CORE::INS_IsCJmp (INS ins)
 
BOOL LEVEL_CORE::INS_IsInterrupt (INS ins)
 
BOOL LEVEL_CORE::INS_IsCondWrite (INS ins)
 
BOOL LEVEL_CORE::INS_IsRet (INS ins)
 
BOOL LEVEL_CORE::INS_IsSysret (INS ins)
 
BOOL LEVEL_CORE::INS_IsFarRet (INS ins)
 
BOOL LEVEL_CORE::INS_IsPrefetch (INS ins)
 
BOOL LEVEL_CORE::INS_IsShift (INS ins)
 
BOOL LEVEL_CORE::INS_IsStringOp (INS ins)
 
BOOL LEVEL_CORE::INS_IsIOStringOp (INS ins)
 
BOOL LEVEL_CORE::INS_IsPush (const INS ins)
 
BOOL LEVEL_CORE::INS_IsPop (const INS ins)
 
BOOL LEVEL_CORE::INS_IsPopF (const INS ins)
 
BOOL LEVEL_CORE::INS_IsPopFD (const INS ins)
 
BOOL LEVEL_CORE::INS_IsPopFQ (const INS ins)
 
BOOL LEVEL_CORE::INS_IsAnyPopF (const INS ins)
 
BOOL LEVEL_CORE::INS_IsInc (const INS ins)
 
BOOL LEVEL_CORE::INS_IsDec (const INS ins)
 
BOOL LEVEL_CORE::INS_IsAdd (const INS ins)
 
BOOL LEVEL_CORE::INS_IsSub (const INS ins)
 
BOOL LEVEL_CORE::INS_IsMov (const INS ins)
 
BOOL LEVEL_CORE::INS_IsMovFullRegRegSame (const INS ins)
 
BOOL LEVEL_CORE::INS_IsMovImmToReg (const INS ins, ADDRINT &imm, REG &reg)
 
BOOL LEVEL_CORE::INS_IsMMXorXMM (const INS ins)
 
BOOL LEVEL_CORE::INS_IsAtomicUpdate (const INS ins)
 
BOOL LEVEL_CORE::INS_IsRDTSC (const INS ins)
 
BOOL LEVEL_CORE::INS_IsMaskMov (const INS ins)
 
BOOL LEVEL_CORE::INS_IsMaskedJump (const INS ins)
 
REG LEVEL_CORE::INS_CountRegister (INS ins)
 
REG LEVEL_CORE::INS_RepCountRegister (INS ins)
 
FLAGS LEVEL_CORE::INS_PhyFlagsMustWritten (const INS ins)
 
FLAGS LEVEL_CORE::INS_PhyFlagsMayWritten (const INS ins)
 
FLAGS LEVEL_CORE::INS_PhyFlagsRead (const INS ins)
 
BOOL LEVEL_CORE::INS_IsIpRelAddr (INS ins)
 
BOOL LEVEL_CORE::INS_IsXlat (INS ins)
 
BOOL LEVEL_CORE::INS_IsCpuid (INS ins)
 
BOOL LEVEL_CORE::INS_IsIndirectBranchOrCall (INS ins)
 
BOOL LEVEL_CORE::INS_CallOrBranchIsRegisterIndirect (INS ins)
 
BOOL LEVEL_CORE::INS_HasFixed8BitBranchDisplacement (INS ins)
 
REG LEVEL_CORE::INS_SegmentRegPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_HasMemoryDisplacement (INS ins)
 
ADDRDELTA LEVEL_CORE::INS_GetMemoryDisplacement (INS ins)
 
BOOL LEVEL_CORE::INS_IsPushAll32 (INS ins)
 
BOOL LEVEL_CORE::INS_IsPushAll16 (INS ins)
 
BOOL LEVEL_CORE::INS_IsPopAll32 (INS ins)
 
BOOL LEVEL_CORE::INS_IsPopAll16 (INS ins)
 
UINT32 LEVEL_CORE::INS_BranchDisplacementWidthBytes (INS ins)
 
ADDRINT LEVEL_CORE::INS_MemoryDisplacementWidthBytes (INS ins)
 
UINT32 LEVEL_CORE::INS_BranchDisplacementWidthBits (INS ins)
 
LOCALFUN REG LEVEL_CORE::INS_GetRoleReg (INS ins, xed_operand_enum_t role)
 
REG LEVEL_CORE::INS_GetIndexReg (INS ins)
 
REG LEVEL_CORE::INS_GetBaseReg (INS ins)
 
BOOL LEVEL_CORE::INS_RegIsBaseReg (INS ins, int readRegNum)
 
REG LEVEL_CORE::INS_GetBaseRegOne (INS ins)
 
BOOL LEVEL_CORE::INS_MemopDisplacementOnly (INS ins)
 
VOID LEVEL_CORE::INS_DisableSegmentPrefix (INS ins)
 
PIN_DEPRECATED_API BOOL LEVEL_CORE::INS_IsRewritableMemOpBaseLimited (INS ins, MEMORY_TYPE mtype, REG &base)
 
PIN_DEPRECATED_API BOOL LEVEL_CORE::INS_IsRewritableMemOpBase (INS ins, MEMORY_TYPE mtype, REG &base)
 
PIN_DEPRECATED_API BOOL LEVEL_CORE::INS_IsDynamicRewritableMemOpBase (INS ins, MEMORY_TYPE mtype, REG &reg)
 
VOID LEVEL_CORE::XED_RAWINS_ReplaceReg (const INS ins, const REG oldreg, const REG newreg)
 
VOID LEVEL_CORE::XED_RAWINS_ReplacePinRegsByAppRegs (const INS ins, const UINT32 num_pinregs, REG *pin_regs, REG *app_regs)
 
VOID LEVEL_CORE::INS_scan_for_memop_info (INS ins, REG &base0, REG &index, ADDRINT &offset, ADDRINT &scale, REG &base1, REG &seg0, REG &seg1)
 
INS LEVEL_CORE::INS_ConvertLoadToMoveHack (INS jmp)
 
VOID LEVEL_CORE::INS_ConvertCallToBranch (INS ins)
 
VOID LEVEL_CORE::INS_ConvertToIndirectJumpHack (INS ins)
 
VOID LEVEL_CORE::INS_MakeAbsolute32Address (INS ins, IADDR target)
 
VOID LEVEL_CORE::INS_SetIndexRegister (INS ins, REG newIndex)
 
VOID LEVEL_CORE::INS_SetRegisterOperand (INS ins, UINT32 operand, REG newReg)
 
VOID LEVEL_CORE::INS_SetMemoryDisplacement (INS ins, ADDRDELTA disp, UINT length_bytes)
 
VOID LEVEL_CORE::INS_SetBranchDisplacement (INS ins, ADDRDELTA disp, UINT length_bytes)
 
LOCALFUN UINT LEVEL_CORE::FieldWidthToSize (const unsigned int width)
 
VOID LEVEL_CORE::INS_SetImmediate (INS ins, ADDRINT imm)
 
VOID LEVEL_CORE::INS_RemoveRep (INS ins)
 
VOID LEVEL_CORE::INS_AddRep (INS ins)
 
LOCALFUN INS_XED_STRUCT_DECODE * LEVEL_CORE::INS_get_arch (INS x)
 
VOID LEVEL_CORE::INS_CopyArchFields (INS ins, INS clone)
 
BOOL LEVEL_CORE::INS_EqualArchFields (INS ins1, INS ins2)
 
ADDRINT LEVEL_CORE::INS_GetImmediate (INS ins)
 
ADDRINT LEVEL_CORE::INS_IsSignedImmediate (INS ins)
 
ADDRDELTA LEVEL_CORE::INS_GetSignedImmediate (INS ins)
 
ADDRINT LEVEL_CORE::INS_GetSecondImmediate (INS ins)
 
ADDRDELTA LEVEL_CORE::INS_GetBranchDisplacement (INS ins)
 
BOOL LEVEL_CORE::INS_HasImmediateOperand (INS ins)
 
BOOL LEVEL_CORE::INS_HasImplicitMemoryReference (INS ins)
 
BOOL LEVEL_CORE::INS_HasExplicitMemoryReference (INS ins)
 
BOOL LEVEL_CORE::INS_HasImplicitStackReference (INS ins)
 
UINT32 LEVEL_CORE::INS_GetScale (INS ins)
 
BOOL LEVEL_CORE::INS_ReadsAllMMRegisters (INS ins)
 
BOOL LEVEL_CORE::INS_WritesAllMMRegisters (INS ins)
 
BOOL LEVEL_CORE::INS_ReadsAllMmxRegisterss (INS ins)
 
BOOL LEVEL_CORE::INS_WritesAllMmxRegisters (INS ins)
 
BOOL LEVEL_CORE::INS_MayWriteAllMMRegisters (INS ins)
 
BOOL LEVEL_CORE::INS_AccessesManyFPRegisters (INS ins)
 
BOOL LEVEL_CORE::INS_IsFpop (INS ins)
 
LOCALVAR KNOB_COMMENT LEVEL_CORE::KnobDisassemblyFamily (knobfamily,"IA-32 architecture and Intel(R) 64 architecture disassembly format")
 
LOCALVAR KNOB< BOOL > LEVEL_CORE::KnobXedDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"xedprint","0","Disassemble using XED format")
 
LOCALVAR KNOB< BOOL > LEVEL_CORE::KnobATTDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"attprint","0","Disassemble using ATT format")
 
LOCALVAR KNOB< BOOL > LEVEL_CORE::KnobIntelDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"intelprint","0","Disassemble using Intel format (default)")
 
LOCALFUN VOID LEVEL_CORE::INS_SetSyntaxFromKnobs ()
 
VOID LEVEL_CORE::PIN_SetSyntaxIntel ()
 
VOID LEVEL_CORE::PIN_SetSyntaxATT ()
 
VOID LEVEL_CORE::PIN_SetSyntaxXED ()
 
string LEVEL_CORE::INS_PrintString (INS ins, ADDRINT addr)
 
VOID LEVEL_CORE::INS_RegRSet (INS x, UINT32 k, REG r)
 
VOID LEVEL_CORE::INS_RegWSet (INS x, UINT32 k, REG r)
 
REG LEVEL_CORE::INS_RegR (INS x, UINT32 k)
 
REG LEVEL_CORE::INS_RegW (INS x, UINT32 k)
 
REG LEVEL_CORE::INS_GetFirstAluSourceReg (INS ins)
 
BOOL LEVEL_CORE::INS_CallOrBranchIsMemoryIndirect (INS ins)
 
BOOL LEVEL_CORE::INS_IsExplicitReadOnly (const INS ins, const UINT32 pos)
 
BOOL LEVEL_CORE::INS_IsExplicit (const INS ins, const UINT32 pos)
 
BOOL LEVEL_CORE::INS_IsImplicitRead (const INS ins, const UINT32 pos)
 
BOOL LEVEL_CORE::INS_IsImplicitWrite (const INS ins, const UINT32 pos)
 
REG LEVEL_CORE::INS_CallOrBranchGetIndirectRegister (INS ins)
 
BOOL LEVEL_CORE::INS_HasRepEqual (INS ins)
 
OPCODE LEVEL_CORE::INS_Opcode (INS ins)
 
string LEVEL_CORE::CATEGORY_StringShort (UINT32 num)
 
string LEVEL_CORE::EXTENSION_StringShort (UINT32 num)
 
VOID LEVEL_CORE::INS_ZeroExtend (BBL bbl, REG src, REG dst)
 
VOID LEVEL_CORE::INS_SignExtend (BBL bbl, REG src, REG dst)
 
BOOL LEVEL_CORE::INS_SegPrefixIsMemoryRead (INS ins)
 
BOOL LEVEL_CORE::INS_SegPrefixIsMemoryWrite (INS ins)
 
BOOL LEVEL_CORE::INS_AddressSizePrefix (INS ins)
 
BOOL LEVEL_CORE::INS_BranchNotTakenPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_BranchTakenPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_LockPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_OperandSizePrefix (INS ins)
 
BOOL LEVEL_CORE::INS_RepPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_RepnePrefix (INS ins)
 
BOOL LEVEL_CORE::INS_SegmentPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_HasSegmentRegPrefix (INS ins)
 
BOOL LEVEL_CORE::INS_IsXchg (INS ins)
 
BOOL LEVEL_CORE::INS_IsStringop (INS ins)
 
BOOL LEVEL_CORE::INS_IsIRet (INS ins)
 

Variables

LOCALVAR CHAR const * LEVEL_CORE::knobfamily = "supported:disassembly"
 
LOCALVAR xed_syntax_enum_t LEVEL_CORE::syntax = XED_SYNTAX_INTEL
 

Detailed Description

this file contains functions visible in level_core it uses primitives from level_core_with_ia32_ins but does not leak out any IA32 stuff!