Pin
Classes | Typedefs | Enumerations | Functions | Variables
LEVEL_CORE Namespace Reference

Classes

struct  EDG_STRUCT_BASE
class  BBL_EDG_CONTAINER_PRED
class  BBL_EDG_CONTAINER_SUCC
struct  IMG_REGION
class  REGISTER_SET
class  CHUNK_REL_CONTAINER
union  VAL
struct  MEM_ADDR_EXP

Typedefs

typedef class REGISTER_SET
< REG_FirstInRegset,
REG_LastInRegset
REGSET

Enumerations

enum  EDG_TYPE {
  EDG_TYPE_INVALID,
  EDG_TYPE_RETURN,
  EDG_TYPE_CALL,
  EDG_TYPE_LINK,
  EDG_TYPE_COMP,
  EDG_TYPE_FALSE,
  EDG_TYPE_BRANCH,
  EDG_TYPE_SWITCH,
  EDG_TYPE_PREFETCH,
  EDG_TYPE_EXCEPTION,
  EDG_TYPE_NORMAL,
  EDG_TYPE_IBRANCH,
  EDG_TYPE_LAST
}
enum  EDG_STATE {
  EDG_STATE_INVALID,
  EDG_STATE_LAST
}
enum  IMG_TYPE {
  IMG_TYPE_INVALID,
  IMG_TYPE_STATIC,
  IMG_TYPE_SHARED,
  IMG_TYPE_SHAREDLIB,
  IMG_TYPE_RELOCATABLE,
  IMG_TYPE_DYNAMIC_CODE,
  IMG_TYPE_API_CREATED,
  IMG_TYPE_LAST
}
enum  IMG_PROPERTY {
  IMG_PROPERTY_INVALID,
  IMG_PROPERTY_SHSTK_ENABLED,
  IMG_PROPERTY_IBT_ENABLED,
  IMG_PROPERTY_LAST
}
enum  MEMORY_TYPE {
  MEMORY_TYPE_READ,
  MEMORY_TYPE_WRITE,
  MEMORY_TYPE_READ2
}
enum  SYSCALL_STANDARD {
  SYSCALL_STANDARD_INVALID,
  SYSCALL_STANDARD_IA32_LINUX,
  SYSCALL_STANDARD_IA32_LINUX_SYSENTER,
  SYSCALL_STANDARD_IA32E_LINUX,
  SYSCALL_STANDARD_IA32_MAC,
  SYSCALL_STANDARD_IA32E_MAC,
  SYSCALL_STANDARD_IA32_WINDOWS_FAST,
  SYSCALL_STANDARD_IA32E_WINDOWS_FAST,
  SYSCALL_STANDARD_IA32_WINDOWS_ALT,
  SYSCALL_STANDARD_WOW64,
  SYSCALL_STANDARD_WINDOWS_INT
}
enum  SEC_TYPE {
  SEC_TYPE_INVALID,
  SEC_TYPE_UNUSED,
  SEC_TYPE_REGREL,
  SEC_TYPE_DYNREL,
  SEC_TYPE_EXEC,
  SEC_TYPE_DATA,
  SEC_TYPE_DYNAMIC,
  SEC_TYPE_OPD,
  SEC_TYPE_GOT,
  SEC_TYPE_STACK,
  SEC_TYPE_PLTOFF,
  SEC_TYPE_HASH,
  SEC_TYPE_LSDA,
  SEC_TYPE_UNWIND,
  SEC_TYPE_UNWINDINFO,
  SEC_TYPE_REGSYM,
  SEC_TYPE_DYNSYM,
  SEC_TYPE_DEBUG,
  SEC_TYPE_BSS,
  SEC_TYPE_SYMSTR,
  SEC_TYPE_DYNSTR,
  SEC_TYPE_SECSTR,
  SEC_TYPE_COMMENT,
  SEC_TYPE_LOOS,
  SEC_TYPE_USER,
  SEC_TYPE_PROC,
  SEC_TYPE_LAST
}
enum  VAL_TYPE {
  VAL_TYPE_INVALID,
  VAL_TYPE_NONE,
  VAL_TYPE_INS,
  VAL_TYPE_BBL,
  VAL_TYPE_EDG,
  VAL_TYPE_REL,
  VAL_TYPE_RTN,
  VAL_TYPE_SEC,
  VAL_TYPE_SYM,
  VAL_TYPE_FILE,
  VAL_TYPE_META,
  VAL_TYPE_DATA,
  VAL_TYPE_IADDR,
  VAL_TYPE_GOT,
  VAL_TYPE_OPD,
  VAL_TYPE_LDEF,
  VAL_TYPE_CHUNK,
  VAL_TYPE_PLTOFF,
  VAL_TYPE_FLT64,
  VAL_TYPE_UINT64,
  VAL_TYPE_UINT32,
  VAL_TYPE_TWO_UINT32,
  VAL_TYPE_INT32,
  VAL_TYPE_SECOFF,
  VAL_TYPE_SYMOFF,
  VAL_TYPE_CHUNKOFF,
  VAL_TYPE_ZERO,
  VAL_TYPE_TRANSPARENT,
  VAL_TYPE_GP,
  VAL_TYPE_STRING,
  VAL_TYPE_REGUSE,
  VAL_TYPE_REG_INT32,
  VAL_TYPE_VERSIONCASE,
  VAL_TYPE_REGALLOCHINT,
  VAL_TYPE_SACT,
  VAL_TYPE_IADDR_INT32,
  VAL_TYPE_CONST_PTR,
  VAL_TYPE_PTR,
  VAL_TYPE_AFUNPTR,
  VAL_TYPE_LAST
}
enum  XED_OPERAND_NUMBER {
  XED_OPERAND_NUMBER_0 = 0,
  XED_OPERAND_NUMBER_1 = 1,
  XED_OPERAND_NUMBER_2 = 2,
  XED_OPERAND_NUMBER_3 = 3
}

Functions

LOCALFUN UINT32 BBL_NumAttrRegsym (BBL bbl)
LOCALFUN UINT32 BBL_NumAttrDynsym (BBL bbl)
UINT32 BBL_NumAttrCrosslink (BBL bbl)
VOID BBL_MoveAllAttributes (BBL fromBbl, BBL toBbl)
UINT32 BBL_NumIns (BBL bbl)
LOCALVAR const ATTRIBUTE ATTR_bbl_chunk ("chunk","bbl","bbl_chunk", EXT_ATTR_MODE_SINGLE, VAL_TYPE_CHUNK, B_CROSSLINK, FALSE,"chunk crosslinked with a type data bbl")
BOOL CallingStd_IsArt (CALLING_STANDARD cstype)
BOOL INS_startbbl (INS x)
LOCALVAR KNOB_COMMENT KnobCheckFamily ("supported:check","Self-checking done inside Pin")
ARRAYBASE EdgArrayBase ("edg pool", 64 *1024)
STRIPE< EDG_STRUCT_BASEEdgStripeBase ("edg stripe base","core",&EdgArrayBase)
EDG EDG_INVALID ()
BOOL EDG_valid (EDG x)
INT32 EDG_no (EDG x)
BOOL EDG_allocated (EDG x)
BOOL EDG_mark (EDG x)
VOID EDG_mark_set (EDG x, BOOL y)
BOOL EDG_mark2 (EDG x)
VOID EDG_mark2_set (EDG x, BOOL y)
EDG_TYPE EDG_type (EDG x)
VOID EDG_type_set (EDG x, EDG_TYPE y)
BOOL EDG_linked (EDG x)
BBL EDG_bbl_src (EDG x)
BBL EDG_bbl_dst (EDG x)
EDG EDG_next_succ (EDG x)
EDG EDG_next_pred (EDG x)
EXT EDG_ext (EDG x)
INT32 EDG_weight (EDG x)
VOID EDG_weight_set (EDG x, INT32 y)
LOCALINLINE VOID EDG_allocated_set (EDG x, BOOL y)
LOCALINLINE VOID EDG_linked_set (EDG x, BOOL y)
LOCALINLINE VOID EDG_next_succ_set (EDG x, EDG y)
LOCALINLINE VOID EDG_next_pred_set (EDG x, EDG y)
LOCALINLINE VOID EDG_bbl_dst_set (EDG x, BBL y)
LOCALINLINE VOID EDG_bbl_src_set (EDG x, BBL y)
std::string str (EDG edg)
LOCALINLINE VOID REL_allocated_set (REL x, BOOL y)
LOCALINLINE VOID REL_target_next_set (REL x, REL y)
LOCALINLINE VOID REL_target_prev_set (REL x, REL y)
LOCALINLINE VOID REL_type_set (REL x, REL_TYPE y)
LOCALINLINE VOID REL_value_type_set (REL x, VAL_TYPE y)
LOCALINLINE VOID REL_target_chunk_set (REL x, CHUNK y)
LOCALINLINE VOID REL_target_off_set (REL x, UINT32 y)
LOCALFUN EXT FindRelInExtChain (EXT head, const ATTRIBUTE *attr, REL rel)
LOCALFUN std::string RELTYPE_StringShort (REL_TYPE type)
LOCALVAR KNOB< UINT32 > KnobMaxIns (KNOB_MODE_WRITEONCE,"supported:debug","max_ins","16384","Maximum number of INS allowed")
LOCALVAR KNOB< UINT32 > KnobMaxRtn (KNOB_MODE_WRITEONCE,"supported:debug","max_rtn","16384","Maximum number of RTN allowed")
LOCALVAR KNOB< UINT32 > KnobMaxSym (KNOB_MODE_WRITEONCE,"supported:debug","max_sym","16384","Maximum number of SYM allowed")
LOCALVAR KNOB< UINT32 > KnobMaxSec (KNOB_MODE_WRITEONCE,"supported:debug","max_sec","16384","Maximum number of SEC allowed")
LOCALVAR KNOB< BOOL > KnobRecycle (KNOB_MODE_WRITEONCE,"supported:debug","recycle","1","Reuse freed stripe elements")
LOCALVAR KNOB< BOOL > KnobRecycleRtn (KNOB_MODE_WRITEONCE,"supported:debug","recycle_rtn","1","Reuse freed rtn")
BOOL INS_HasRealRep (INS ins)
BOOL INS_IsStandardMemop (INS ins)
BOOL INS_IsCacheLineFlush (INS ins)
INT32 INS_Category (const INS ins)
INT32 INS_Extension (const INS ins)
UINT32 INS_EffectiveAddressWidth (INS ins)
USIZE INS_MemoryOperandSize (INS ins, UINT32 memoryOp)
USIZE INS_MemoryWriteSize (INS ins)
USIZE INS_MemoryReadSize (INS ins)
PREDICATE INS_GetPredicate (INS ins)
BOOL INS_IsMemoryRead (INS ins)
BOOL INS_IsMemoryWrite (INS ins)
BOOL INS_HasMemoryRead2 (INS ins)
BOOL INS_HasFallThrough (INS ins)
BOOL INS_IsSysenter (INS ins)
BOOL INS_IsXbegin (INS ins)
BOOL INS_IsXend (INS ins)
BOOL INS_IsLea (INS ins)
BOOL INS_IsNop (INS ins)
std::string OPCODE_StringShort (UINT32 opcode)
std::string INS_Mnemonic (INS ins)
BOOL INS_IsBranch (INS ins)
BOOL INS_IsDirectBranch (INS ins)
BOOL INS_IsDirectCall (INS ins)
PIN_DEPRECATED_API BOOL INS_IsDirectBranchOrCall (INS ins)
BOOL INS_IsDirectControlFlow (INS ins)
BOOL INS_IsHalt (INS ins)
PIN_DEPRECATED_API BOOL INS_IsBranchOrCall (INS ins)
BOOL INS_Stutters (INS ins)
BOOL INS_IsPcMaterialization (INS ins)
BOOL INS_IsCall (INS ins)
BOOL INS_IsControlFlow (INS ins)
BOOL INS_IsFarCall (INS ins)
BOOL INS_IsFarJump (INS ins)
BOOL INS_IsDirectFarJump (INS ins)
BOOL INS_IsValidForIpointAfter (INS ins)
BOOL INS_IsValidForIpointTakenBranch (INS ins)
BOOL INS_IsVgather (INS ins)
BOOL INS_IsVscatter (INS ins)
BOOL INS_HasMemoryVector (INS ins)
VOID INS_GetFarPointer (INS ins, UINT16 &segment_selector, UINT32 &displacement)
BOOL INS_IsProcedureCall (INS ins)
BOOL INS_IsRet (INS ins)
BOOL INS_IsSysret (INS ins)
BOOL INS_IsFarRet (INS ins)
BOOL INS_IsPrefetch (INS ins)
BOOL INS_IsSub (const INS ins)
BOOL INS_IsMov (const INS ins)
BOOL INS_IsMovFullRegRegSame (const INS ins)
BOOL INS_IsAtomicUpdate (const INS ins)
BOOL INS_IsRDTSC (const INS ins)
BOOL INS_IsMaskMov (const INS ins)
REG INS_RepCountRegister (INS ins)
PIN_DEPRECATED_API BOOL INS_IsIndirectBranchOrCall (INS ins)
BOOL INS_IsIndirectControlFlow (INS ins)
REG INS_SegmentRegPrefix (INS ins)
BOOL INS_HasExplicitMemoryReference (INS ins)
LOCALVAR KNOB_COMMENT KnobDisassemblyFamily (knobfamily,"IA-32 architecture and Intel(R) 64 architecture disassembly format")
LOCALVAR KNOB< BOOL > KnobXedDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"xedprint","0","Disassemble using Intel(R) X86 Encoder Decoder format")
LOCALVAR KNOB< BOOL > KnobATTDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"attprint","0","Disassemble using ATT format")
LOCALVAR KNOB< BOOL > KnobIntelDisassembly (KNOB_MODE_WRITEONCE, knobfamily,"intelprint","0","Disassemble using Intel format (default)")
LOCALFUN VOID INS_SetSyntaxFromKnobs ()
VOID PIN_SetSyntaxIntel ()
VOID PIN_SetSyntaxATT ()
VOID PIN_SetSyntaxXED ()
REG INS_RegR (INS x, UINT32 k)
REG INS_RegW (INS x, UINT32 k)
std::string CATEGORY_StringShort (UINT32 num)
std::string EXTENSION_StringShort (UINT32 num)
BOOL INS_SegPrefixIsMemoryRead (INS ins)
BOOL INS_SegPrefixIsMemoryWrite (INS ins)
BOOL INS_AddressSizePrefix (INS ins)
BOOL INS_BranchNotTakenPrefix (INS ins)
BOOL INS_BranchTakenPrefix (INS ins)
BOOL INS_LockPrefix (INS ins)
BOOL INS_OperandSizePrefix (INS ins)
BOOL INS_RepPrefix (INS ins)
BOOL INS_RepnePrefix (INS ins)
BOOL INS_SegmentPrefix (INS ins)
BOOL INS_IsXchg (INS ins)
BOOL INS_IsStringop (INS ins)
BOOL INS_IsIRet (INS ins)
UINT32 INS_MaxNumRRegs (INS x)
UINT32 INS_MaxNumWRegs (INS x)
BOOL INS_RegRContain (const INS ins, const REG reg)
BOOL INS_RegWContain (const INS ins, const REG reg)
BOOL INS_FullRegRContain (const INS ins, const REG reg)
BOOL INS_FullRegWContain (const INS ins, const REG reg)
BOOL INS_IsStackRead (const INS ins)
BOOL INS_IsStackWrite (const INS ins)
BOOL INS_IsIpRelRead (const INS ins)
BOOL INS_IsIpRelWrite (const INS ins)
BOOL INS_IsPredicated (INS ins)
LOCALVAR KNOB< BOOL > KnobPrintRawInstruction (KNOB_MODE_WRITEONCE,"supported","rawinst","0","Print raw instruction encoding in string conversions")
LOCALVAR KNOB< BOOL > KnobPrintPinRegs (KNOB_MODE_WRITEONCE,"supported","printpinreg","0","Print Pin registers in disassembly")
LOCALVAR KNOB< BOOL > KnobPrintBranch (KNOB_MODE_WRITEONCE,"supported","printbr","0","Print branch information in disassembly")
BOOL INS_IsOriginal (INS ins)
std::string INS_Disassemble (INS ins)
ADDRDELTA INS_MemoryDisplacement (INS ins)
REG INS_MemoryBaseReg (INS ins)
REG INS_MemoryIndexReg (INS ins)
UINT32 INS_MemoryScale (INS ins)
BOOL INS_hasKnownMemorySize (INS ins)
BOOL INS_ChangeReg (const INS ins, const REG old_reg, const REG new_reg, const BOOL as_read)
VOID INS_InitMovsxd (INS ins, REG src, REG dst)
UINT32 INS_min_alignment ()
LOCALVAR MESSAGE_TYPE MessageTypeLogXEDIa32 ("log_xed","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: Intel(R) X86 Encoder Decoder ")
LOCALVAR STAT_UINT64 XEDStatDecode ("pin","xed","decoded_insts_by_xed","")
LOCALVAR STAT_UINT64 XEDStatDecodeForDecodeIns ("pin","xed","decoded_insts_for_DecodeIns","")
LOCALVAR STAT_UINT64 XEDStatDecodeForValidation ("pin","xed","decoded_insts_for_Validation","")
LOCALVAR STAT_UINT64 XEDStatDecodeFor_update_stripe ("pin","insts","decoded_for_update_stripe","")
LOCALVAR STAT_UINT64 XEDStatEncode ("pin","insts","encoded_insts_by_xed","")
LOCALVAR STAT_UINT64 XEDStatReencodeAndDecode ("pin","insts","encoded_decode_reencode","")
LOCALVAR STAT_UINT64 PinFetchedInssStat ("pin","insts","fetched_total","")
LOCALVAR STAT_UINT64 PinGeneratedInssStat ("pin","insts","generated_inss_via_xed","")
LOCALVAR STAT_NORM TimerXEDStatEncodeAndDecode ("pin","time","XED_e_d_updt_strp","",&TimerCompile)
LOCALVAR STAT_UINT64 XEDStatInsEncode ("pin","insts","encode_INS_Encode_total","")
LOCALVAR STAT_UINT64 XEDStatInsEncodeUsedCachedEncode ("pin","insts","encode_INS_Encode_used_cached","")
LOCALVAR STAT_UINT64 XEDStatCachedReencode ("pin","insts","cached_reencoded_insts","")
LOCALVAR KNOB_COMMENT knob_xed_family ("supported:xed","Intel(R) X86 Encoder Decoder switches")
xed_decoded_inst_t * INS_XedDec (INS ins)
REG INS_XedExactMapToPinReg (unsigned int r)
UINT32 INS_OperandCount (INS ins)
UINT32 INS_OperandNameId (INS ins, UINT32 n)
BOOL INS_OperandIsMemory (INS ins, UINT32 n)
REG INS_OperandMemoryBaseReg (INS ins, UINT32 n)
REG INS_OperandMemoryIndexReg (INS ins, UINT32 n)
REG INS_OperandMemorySegmentReg (INS ins, UINT32 n)
UINT32 INS_OperandMemoryScale (INS ins, UINT32 n)
ADDRDELTA INS_OperandMemoryDisplacement (INS ins, UINT32 n)
BOOL INS_OperandIsFixedMemop (INS ins, UINT32 n)
VOID GetNumberAndSizeOfMemAccesses (INS ins, int *numAccesses, int *accessSize, int *indexSize)
UINT32 INS_MemoryOperandCount (INS ins)
BOOL INS_OperandIsAddressGenerator (INS ins, UINT32 n)
BOOL INS_OperandIsBranchDisplacement (INS ins, UINT32 n)
LOCALFUN xed_reg_class_enum_t INS_XedRegClass (INS ins, UINT32 n)
BOOL INS_OperandIsReg (INS ins, UINT32 n)
BOOL INS_OperandIsSegmentReg (INS ins, UINT32 n)
REG INS_OperandReg (INS ins, UINT32 n)
BOOL INS_OperandIsImmediate (INS ins, UINT32 n)
UINT64 INS_OperandImmediate (INS ins, UINT32 n)
BOOL INS_OperandIsImplicit (INS ins, UINT32 n)
BOOL INS_RegIsImplicit (INS ins, REG reg)
UINT32 INS_OperandWidth (INS ins, UINT32 n)
BOOL INS_OperandRead (INS ins, UINT32 n)
BOOL INS_OperandWritten (INS ins, UINT32 n)
BOOL INS_OperandReadOnly (INS ins, UINT32 n)
BOOL INS_OperandWrittenOnly (INS ins, UINT32 n)
BOOL INS_OperandReadAndWritten (INS ins, UINT32 n)
BOOL INS_MemoryOperandIsRead (INS ins, UINT32 memopIdx)
BOOL INS_MemoryOperandIsWritten (INS ins, UINT32 memopIdx)
UINT32 INS_MemoryOperandIndexToOperandIndex (INS ins, UINT32 memopIdx)
BOOL REGSET_Contains (const REGSET &regset, REG reg)
VOID REGSET_Insert (REGSET &regset, REG reg)
VOID REGSET_Remove (REGSET &regset, REG reg)
VOID REGSET_Clear (REGSET &regset)
VOID REGSET_AddAll (REGSET &regset)
REG REGSET_PopNext (REGSET &regset)
UINT32 REGSET_PopCount (const REGSET &regset)
BOOL REGSET_PopCountIsZero (const REGSET &regset)
std::string REGSET_StringShort (const REGSET &regset)
std::string REGSET_StringList (const REGSET &regset)
UINT32 REGSET_HashKey (const REGSET &regset)
BOOL REGSET_CONTEXT_Contains (const REGSET_CONTEXT regset, REG reg)
VOID REGSET_CONTEXT_Insert (REGSET_CONTEXT &regset, REG reg)
VOID REGSET_CONTEXT_Remove (REGSET_CONTEXT &regset, REG reg)
VOID REGSET_CONTEXT_Clear (REGSET_CONTEXT &regset)
REG REGSET_CONTEXT_PopNext (REGSET_CONTEXT &regset)
UINT32 REGSET_CONTEXT_PopCount (const REGSET_CONTEXT &regset)
BOOL REGSET_CONTEXT_PopCountIsZero (const REGSET_CONTEXT &regset)
std::string REGSET_CONTEXT_StringShort (const REGSET_CONTEXT &regset)
std::string REGSET_CONTEXT_StringList (const REGSET &regset)
LOCALINLINE VOID SetHi16ZmmBit (FPSTATE *fpstate)
BOOL INS_IsSyscall (INS ins)
SYSCALL_STANDARD INS_SyscallStd (INS ins)

Variables

LOCALVAR REG linuxCallerSaved []
LOCALVAR REG linuxCallerSavedAvx []
LOCALVAR REG linuxCallerSavedAvx512 []
LOCALVAR REG windowsCallerSaved []
LOCALVAR REG windowsCallerSavedAvx []
LOCALVAR REG windowsCallerSavedAvx512 []
LOCALVAR CHAR const * knobfamily = "supported:disassembly"
LOCALVAR xed_syntax_enum_t syntax = XED_SYNTAX_INTEL
LOCALCONST UINT AUTO_DISP_BYTES = 0
LOCALCONST INT32 DEFAULT_EA_WIDTH = sizeof(VOID*) * 8
LOCALCONST xed_state_t DSTATE
LOCALCONST UINT MAX_DUMMY_REGS = 3
LOCALCONST UINT MAX_DUMMY_REG_WIDTHS = 4
LOCALCONST REGWIDTH MAX_DUMMY_REGWIDTH = REGWIDTH_64
LOCALVAR const xed_reg_enum_t dummy_regs_native_table [MAX_DUMMY_REGS]
LOCALVAR const xed_reg_enum_t dummy_regs_width_table [MAX_DUMMY_REGS][MAX_DUMMY_REG_WIDTHS]
struct {
   xed_iclass_enum_t   cmovOp
   xed_iclass_enum_t   setOp
predicateToOp []
GLOBALCONST REG REG_FirstInRegset = REG_RBASE
GLOBALCONST REG REG_LastInRegset = REG(REG_LAST-1)

Detailed Description

This file contains APP primitives

This file contains BBL primitives

Calling standard information

control flow graph related stuff

This file contains CHUNK primitives

Manage comments that are attached to data structures for debugging

This file contains EDG primitives

This module contains all the EXT extension/attribute management fuctions.

This file contains IMG primitives

This file contains INS primitives

Physical register

Register value representation

x

This file contains REL primitives

This file contains RTN primitives

This file contains the action to modify SCT's

This file contains SEC and Mapping primitives

Manage stripes

This file contains SYM primitives

This file contains SEC and Mapping primitives

This file contains eflags-related stuff

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!

ELF specific stuff related to INS

This file contains the basic INS_Init* functions used thruout Pin to generate INSs, and the functions that use them. The basic INS_Init* functions are LOCALFUNS, so they do not expose the XED types thruout Pin. The GLOBALFUNs wrap them.

Contains the management of ins reuse - i.e. the reuse of already created inss when a new ins is generated. This functionality is used in the base INS_Init* functions in ins_initis_api_xed_ia32.cpp.

Intel(R) X86 Encoder Decoder low-level support routines.

This supports the other core_ia32 files and is the lowest level interface to Intel(R) XED encoding/decoding.

ia32 specific stuff related to OPERAND

Register value representation ia-32 specific

Syscall information for Unix/x86 systems


Enumeration Type Documentation

EDG state enumeration - not used

EDG type enumeration

Enumerator:
EDG_TYPE_INVALID 

illegal type,

EDG_TYPE_RETURN 

return edge (not used)

EDG_TYPE_CALL 

call edge (callsite -> callee)

EDG_TYPE_LINK 

link edge (callsite->returnsite)

EDG_TYPE_COMP 

compensation edge (not used)

EDG_TYPE_FALSE 

generic fall through edge (predicated)

EDG_TYPE_BRANCH 

branch edge

EDG_TYPE_SWITCH 

switch edge

EDG_TYPE_PREFETCH 

prefetch edge

EDG_TYPE_EXCEPTION 

EH edge (callsite -> landing pad )

EDG_TYPE_NORMAL 

fall through edge (not predicated)

EDG_TYPE_IBRANCH 

indirect branch (lookup -> target)

VAL types


Function Documentation

LOCALVAR const ATTRIBUTE LEVEL_CORE::ATTR_bbl_chunk ( "chunk"  ,
"bbl"  ,
"bbl_chunk"  ,
EXT_ATTR_MODE_SINGLE  ,
VAL_TYPE_CHUNK  ,
B_CROSSLINK  ,
FALSE  ,
"chunk crosslinked with a type data bbl"   
)
UINT32 LEVEL_CORE::BBL_NumAttrCrosslink ( BBL  bbl)

if a bbl has any of these atributes it cannot be freed

LOCALFUN UINT32 LEVEL_CORE::BBL_NumAttrRegsym ( BBL  bbl)
BOOL LEVEL_CORE::CallingStd_IsArt ( CALLING_STANDARD  cstype)
ARRAYBASE LEVEL_CORE::EdgArrayBase ( "edg pool"  ,
64 *  1024 
)

The root for all EDG stripes

STRIPE<EDG_STRUCT_BASE> LEVEL_CORE::EdgStripeBase ( "edg stripe base"  ,
"core"  ,
EdgArrayBase 
)

The base stripe for REL

LOCALFUN EXT LEVEL_CORE::FindRelInExtChain ( EXT  head,
const ATTRIBUTE *  attr,
REL  rel 
)
VOID LEVEL_CORE::INS_InitMovsxd ( INS  ins,
REG  src,
REG  dst 
)

x

LOCALFUN xed_reg_class_enum_t LEVEL_CORE::INS_XedRegClass ( INS  ins,
UINT32  n 
)
Returns:
xed register class enum for the specified operand
LOCALINLINE VOID LEVEL_CORE::REL_allocated_set ( REL  x,
BOOL  y 
)
LOCALFUN std::string LEVEL_CORE::RELTYPE_StringShort ( REL_TYPE  type)
LOCALINLINE VOID LEVEL_CORE::SetHi16ZmmBit ( FPSTATE *  fpstate)

Variable Documentation

LOCALCONST xed_state_t LEVEL_CORE::DSTATE
Initial value:

    {XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b}
LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_native_table[MAX_DUMMY_REGS]
Initial value:
{

    XED_REG_RDX, XED_REG_RBX, XED_REG_RCX


 
}
LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_width_table[MAX_DUMMY_REGS][MAX_DUMMY_REG_WIDTHS]
Initial value:
{

    { XED_REG_DL, XED_REG_DX, XED_REG_EDX, XED_REG_RDX},
    { XED_REG_CL, XED_REG_CX, XED_REG_ECX, XED_REG_RCX},
    { XED_REG_BL, XED_REG_BX, XED_REG_EBX, XED_REG_RBX}




 
}
LOCALVAR REG LEVEL_CORE::windowsCallerSaved[]
Initial value:
{
    REG_RAX,
    REG_RCX,
    REG_RDX,
    REG_R8,
    REG_R9,
    REG_R10,
    REG_R11,
    REG_STATUS_FLAGS,
    REG_DF_FLAG,
    REG_XMM0,
    REG_XMM1,
    REG_XMM2,
    REG_XMM3,
    REG_XMM4,
    REG_XMM5,
    REG_X87,
    REG_MXCSR
}
LOCALVAR REG LEVEL_CORE::windowsCallerSavedAvx[]
Initial value:
{
    REG_RAX,
    REG_RCX,
    REG_RDX,
    REG_R8,
    REG_R9,
    REG_R10,
    REG_R11,
    REG_STATUS_FLAGS,
    REG_DF_FLAG,
    REG_YMM0,
    REG_YMM1,
    REG_YMM2,
    REG_YMM3,
    REG_YMM4,
    REG_YMM5,
    REG_YMM6,
    REG_YMM7,
    REG_YMM8,
    REG_YMM9,
    REG_YMM10,
    REG_YMM11,
    REG_YMM12,
    REG_YMM13,
    REG_YMM14,
    REG_YMM15,
    REG_X87,
    REG_MXCSR
}
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator