Generic modification API
[INS: Instruction Object]


Functions

BOOL LEVEL_PINCLIENT::INS_RewriteMemoryAddressingToBaseRegisterOnly (INS ins, MEMORY_TYPE mtype, REG newBase)
VOID LEVEL_PINCLIENT::INS_InsertIndirectJump (INS ins, IPOINT ipoint, REG reg)
VOID LEVEL_PINCLIENT::INS_InsertDirectJump (INS ins, IPOINT ipoint, ADDRINT tgt)
VOID LEVEL_PINCLIENT::INS_Delete (INS ins)

Detailed Description

Use these functions to modify instructions. They work for all instruction sets. For experts only!

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

Function Documentation

VOID LEVEL_PINCLIENT::INS_Delete INS  ins  ) 
 

Delete the instruction

Availability:
Mode: JIT
O/S: Linux, Windows & MacOS
CPU: All

VOID LEVEL_PINCLIENT::INS_InsertDirectJump INS  ins,
IPOINT  ipoint,
ADDRINT  tgt
 

Insert direct jump instruction relative to the given instruction When used with INS_Delete it can be used to emulate control transfer instructions.

Parameters:
[in] ins input instruction
[in] ipoint location relative to ins (only IPOINT_BEFORE and IPOINT_AFTER are supported)
[in] tgt absolute address of the target
Availability:
Mode: JIT
O/S: Linux, Windows & MacOS
CPU: IA-32 and Intel(R) 64 architectures

VOID LEVEL_PINCLIENT::INS_InsertIndirectJump INS  ins,
IPOINT  ipoint,
REG  reg
 

Insert indirect jump instruction relative to the given instruction. When used with INS_Delete it can be used to emulate control transfer instructions.

Parameters:
[in] ins input instruction
[in] ipoint location relative to ins (only IPOINT_BEFORE and IPOINT_AFTER are supported)
[in] reg register holding the target
Availability:
Mode: JIT
O/S: Linux, Windows & MacOS
CPU: IA-32 and Intel(R) 64 architectures

BOOL LEVEL_PINCLIENT::INS_RewriteMemoryAddressingToBaseRegisterOnly INS  ins,
MEMORY_TYPE  mtype,
REG  newBase
 

Change this memory access instruction use a base register addressing mode. On IA-32/Intel64, it will not rewrite all references; See INS_IsRewritableMemOpBase() for details.

Parameters:
[in] ins input instruction
[in] mtype contols which operand to rewrite (read, write or second read operand)
[in] newBase register used as the new memory base address
Availability:
Mode: JIT
O/S: Linux, Windows & MacOS
CPU: IA-32 and Intel(R) 64 architectures


Generated on Thu Jul 17 08:28:14 2008 for Pin by  doxygen 1.4.6