|
|
Generic INS_PROP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Disassembly type listing of instruction |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
These are supposed to be near relative branches.
|
|
|
|
|
|
Is an IP-relative read |
|
|
Is an IP-relative write |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We treat these instructions as predicated conditional move (CMOVcc) floating conditional move (FCMOVcc) rep string ops (since they don't execute if GCX==0) |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
DEPRECATED you should replace the use of this function with INS_RewriteMemoryOperand, which has almost no limitations on the instructions which can be rewritten. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Is the nth memory operand read? |
|
||||||||||||
|
Is the nth memory operand written? |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Get the address of the next instruction. For the IA-64 architecture, it does not make sense to add the size to the address to get the next instruction so use this primitive for all architectures.
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Check to see if the given instruction is a system call and return corresponding calling standard.
|
|
|
|
|
|
|
|
|
DEPRECATED VARIABLE_MEMORY_REFERENCE_SIZE is no longer generated by Pin, so all code which used to test for it can (and should ) now be removed, since the definition of this symbol will disappear in a future Pin release. Pin now treats REP prefixed string ops as implicit loops, with the IPOINT_BEFORE and IPOINT_AFTER instrumentation called once for each iteration. That allows the IARG_MEMORY*_SIZE of the instruction to be that of the un-repped instruction (1,2,4 or 8 bytes), which can be determined at instrumentation time as with any other instruction. In most cases this significantly simplifies tools, which no longer have to special case unbounded memory accesses. To handle the case of zero iteration REP prefixed instructions (which used to dynamically generate a zero memory size, but which will now generate the statically determined size), REP prefixed instructions are treated as predicated, so you can use INS_InsertPredicatedCall, or IARG_EXECUTING to determine whether the instruction actually executes. Note that this is the same behavior as for CMOVcc instructions which can also have conditional memory accesses, but have never generated a zero memory size operand. |
1.4.6