IA32-specific inspection API
[INS: Instruction Object]


Enumerations

enum  LEVEL_BASE::PREDICATE_IA32 {
  LEVEL_BASE::PREDICATE_ALWAYS_TRUE,
  PREDICATE_ALWAYS_TRUE = PREDICATE_PR0,
  PREDICATE_INVALID,
  PREDICATE_INVALID,
  PREDICATE_LAST,
  PREDICATE_LAST
}

Functions

BOOL LEVEL_CORE::INS_IsHalt (INS ins)
BOOL LEVEL_CORE::INS_IsSub (const INS ins)
BOOL LEVEL_CORE::INS_IsMov (const INS ins)
BOOL LEVEL_CORE::INS_IsRDTSC (const INS ins)
REG LEVEL_CORE::INS_SegmentRegPrefix (INS ins)
VOID LEVEL_CORE::PIN_SetSyntaxIntel ()
VOID LEVEL_CORE::PIN_SetSyntaxATT ()
VOID LEVEL_CORE::PIN_SetSyntaxXED ()
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_Refining66Prefix (INS ins)
BOOL LEVEL_CORE::INS_RefiningF2Prefix (INS ins)
BOOL LEVEL_CORE::INS_RefiningF3Prefix (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_IsXchg (INS ins)
BOOL LEVEL_CORE::INS_IsIRet (INS ins)
ADDRINT LEVEL_CORE::INS_MemoryOffset (INS ins)
ADDRINT LEVEL_CORE::INS_MemoryDisplacement (INS ins)
ADDRDELTA LEVEL_CORE::INS_MemoryDisplacementSigned (INS ins)
REG LEVEL_CORE::INS_MemoryBaseReg (INS ins)
REG LEVEL_CORE::INS_MemoryIndexReg (INS ins)
UINT32 LEVEL_CORE::INS_MemoryScale (INS ins)
BOOL LEVEL_CORE::INS_HasProperty (INS ins, INS_PROP prop)
BOOL LEVEL_CORE::INS_OperandRead (INS ins, UINT32 n)
BOOL LEVEL_CORE::INS_OperandWritten (INS ins, UINT32 n)
BOOL LEVEL_CORE::INS_OperandReadOnly (INS ins, UINT32 n)
BOOL LEVEL_CORE::INS_OperandWrittenOnly (INS ins, UINT32 n)
BOOL LEVEL_CORE::INS_OperandReadAndWriten (INS ins, UINT32 n)

Detailed Description

IA32-specific functions to examine an instruction.

Enumeration Type Documentation

enum LEVEL_BASE::PREDICATE_IA32
 

Predicate abstraction for IA32.

Enumerator:
PREDICATE_ALWAYS_TRUE  No predication on IA32.


Function Documentation

BOOL LEVEL_CORE::INS_AddressSizePrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an address size prefix

BOOL LEVEL_CORE::INS_BranchNotTakenPrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an branch not taken hint prefix

BOOL LEVEL_CORE::INS_BranchTakenPrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an branch taken hint prefix

BOOL LEVEL_CORE::INS_HasProperty (  INS  ins,
INS_PROP  prop
) 
 

Returns:
true if the instruction has the property - one of INS_PROP_IPF

BOOL LEVEL_CORE::INS_IsHalt (  INS  ins  ) 
 

x

BOOL LEVEL_CORE::INS_IsIRet (  INS  ins  ) 
 

Returns:
true if the instruction is an "iret"

BOOL LEVEL_CORE::INS_IsMov (  const INS  ins  ) 
 

x

BOOL LEVEL_CORE::INS_IsRDTSC (  const INS  ins  ) 
 

x

BOOL LEVEL_CORE::INS_IsSub (  const INS  ins  ) 
 

x

BOOL LEVEL_CORE::INS_IsXchg (  INS  ins  ) 
 

Returns:
true if the instruction is an "xchg"

BOOL LEVEL_CORE::INS_LockPrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an lock prefix

REG LEVEL_CORE::INS_MemoryBaseReg (  INS  ins  ) 
 

Get base register

ADDRINT LEVEL_CORE::INS_MemoryDisplacement (  INS  ins  ) 
 

Get Displacement. Note: the displacement is a signed number and ADDRINTs are not signed. See also INS_MemoryDisplacementSigned(ins).

ADDRDELTA LEVEL_CORE::INS_MemoryDisplacementSigned (  INS  ins  ) 
 

Get Displacement as a signed number.

REG LEVEL_CORE::INS_MemoryIndexReg (  INS  ins  ) 
 

Get index register

ADDRINT LEVEL_CORE::INS_MemoryOffset (  INS  ins  ) 
 

Deprecated. Use INS_MemoryDisplacement(ins) or INS_MemoryDisplacementSigned(ins).

UINT32 LEVEL_CORE::INS_MemoryScale (  INS  ins  ) 
 

Get scale

BOOL LEVEL_CORE::INS_OperandRead (  INS  ins,
UINT32  n
) 
 

Tells if an instruction operand is a source; it may also be a destination.

Parameters:
[in] ins The instruction.
[in] n Operand's index in the range [0, n-1], where n is from INS_OperandCount().
Returns:
TRUE if the operand is a source.

BOOL LEVEL_CORE::INS_OperandReadAndWriten (  INS  ins,
UINT32  n
) 
 

Tells if an instruction is both a source and a destination.

Parameters:
[in] ins The instruction.
[in] n Operand's index in the range [0, n-1], where n is from INS_OperandCount().
Returns:
TRUE if the operand is both a source and a destination.

BOOL LEVEL_CORE::INS_OperandReadOnly (  INS  ins,
UINT32  n
) 
 

Tells if an instruction operand is just a source (and not a destination).

Parameters:
[in] ins The instruction.
[in] n Operand's index in the range [0, n-1], where n is from INS_OperandCount().
Returns:
TRUE if the operand is just a source.

BOOL LEVEL_CORE::INS_OperandSizePrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an operand size prefix

BOOL LEVEL_CORE::INS_OperandWritten (  INS  ins,
UINT32  n
) 
 

Tells if an instruction operand is a destination; it may also be a source.

Parameters:
[in] ins The instruction.
[in] n Operand's index in the range [0, n-1], where n is from INS_OperandCount().
Returns:
TRUE if the operand is a destination.

BOOL LEVEL_CORE::INS_OperandWrittenOnly (  INS  ins,
UINT32  n
) 
 

Tells if an instruction operand is just a destination (and not a source).

Parameters:
[in] ins The instruction.
[in] n Operand's index in the range [0, n-1], where n is from INS_OperandCount().
Returns:
TRUE if the operand is just a destination.

BOOL LEVEL_CORE::INS_Refining66Prefix (  INS  ins  ) 
 

Returns:
true if the instruction has an refining 0x66 prefix

BOOL LEVEL_CORE::INS_RefiningF2Prefix (  INS  ins  ) 
 

Returns:
true if the instruction has an refining 0xf2 prefix; REPNE is not used as a repeat-prefix.

BOOL LEVEL_CORE::INS_RefiningF3Prefix (  INS  ins  ) 
 

Returns:
true if the instruction has an refining 0xf3 prefix; REP is not used as a repeat-prefix.

BOOL LEVEL_CORE::INS_RepnePrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an REPNE (0xF2) prefix.

BOOL LEVEL_CORE::INS_RepPrefix (  INS  ins  ) 
 

Returns:
true if the instruction has an REP (0xF3) prefix.

BOOL LEVEL_CORE::INS_SegmentPrefix (  INS  ins  ) 
 

@ segment prefix; Call INS_SegmentRegPrefix() to get the actual prefix register name.

REG LEVEL_CORE::INS_SegmentRegPrefix (  INS  ins  ) 
 

Returns:
Segment overide prefix used by INS

BOOL LEVEL_CORE::INS_SegPrefixIsMemoryRead (  INS  ins  ) 
 

Returns:
true if this Seg prefixed instruction reads memory

BOOL LEVEL_CORE::INS_SegPrefixIsMemoryWrite (  INS  ins  ) 
 

Returns:
true if this Seg prefixed instruction writes to memory

VOID LEVEL_CORE::PIN_SetSyntaxATT (   ) 
 

Sets the disassembly syntax to ATT SYSV format. (Destination on the right)

VOID LEVEL_CORE::PIN_SetSyntaxIntel (   ) 
 

Sets the disassembly syntax to Intel format. (Destination on the left)

VOID LEVEL_CORE::PIN_SetSyntaxXED (   ) 
 

Sets the disassembly syntax to XED detailed format which lists all resources read and written.


Generated on Tue Jan 16 00:09:08 2007 for Pin by  doxygen 1.4.6