Pin
Modules | Functions
INS: Instruction Object

Modules

 Instrumentation API
 
 Generic inspection API
 
 Inspection API for IA-32 and Intel(R) 64 instructions
 
 Generic modification API
 

Functions

BOOL LEVEL_CORE::INS_IsCacheLineFlush (INS ins)
 
BOOL LEVEL_PINCLIENT::INS_IsAddedForFunctionReplacement (INS ins)
 

Detailed Description

Iteration idioms:

// Forward pass over all instructions in bbl
for( INS ins= BBL_InsHead(bbl); INS_Valid(ins); ins = INS_Next(ins) )
// Forward pass over all instructions in routine
for( INS ins= RTN_InsHead(rtn); INS_Valid(ins); ins = INS_Next(ins) )

Function Documentation

◆ INS_IsAddedForFunctionReplacement()

BOOL LEVEL_PINCLIENT::INS_IsAddedForFunctionReplacement ( INS  ins)

Return TRUE if ins is not an original instruction in the application, but is an instruction added by Pin for doing function replacement. Pin allows you to even instrument these non-original instructions in JIT mode.

Availability:
Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All

◆ INS_IsCacheLineFlush()

BOOL LEVEL_CORE::INS_IsCacheLineFlush ( INS  ins)
Returns
TRUE if instruction causes cache line flush
LEVEL_PINCLIENT::INS_Next
INS INS_Next(INS x)
LEVEL_PINCLIENT::INS_Valid
BOOL INS_Valid(INS x)
LEVEL_PINCLIENT::BBL_InsHead
INS BBL_InsHead(BBL x)
LEVEL_PINCLIENT::RTN_InsHead
INS RTN_InsHead(RTN rtn)