Pin
|
Public Member Functions | |
virtual BOOL | IsMemory () const =0 |
virtual BOOL | IsRegister () const =0 |
virtual USIZE | Size () const =0 |
virtual ADDRINT | Address () const =0 |
virtual UINT32 | NumOfElements () const =0 |
virtual USIZE | ElementSize (UINT32 element_index) const =0 |
virtual ADDRINT | ElementAddress (UINT32 element_index) const =0 |
virtual UINT32 | ElementOffset (UINT32 element_index) const =0 |
virtual UINT32 | ElementMaskValue (UINT32 element_index) const =0 |
virtual PIN_OP_ELEMENT_ACCESS | ElementAccessType (UINT32 element_index) const =0 |
An object implementing this interface is passed to analysis routine when IARG_MULTI_ELEMENT_OPERAND is requested. This interface allows inspecting multi element operands (register or memory).
|
pure virtual |
Return effective address of the full operand.
For memory operands that do not have an effective address(where INS_HasScatteredMemoryAccess returns TRUE) - 0 is returned.
This function should be used only for Memory operands and will result in Pin error if used for Register operands.
|
pure virtual |
Return element access type (read/write/readwrite)
|
pure virtual |
Return element effective address
|
pure virtual |
Return element mask value - 0 or 1.
If the instruction has no active mask - 1 is returned.
If the mask register is a KMASK then 1 is returned if the bit associated with element N in the mask is set.
If the mask register is a vector register then 1 is returned if the high bit of the mask element associated with element N (size of mask element depends on the instruction) is set.
|
pure virtual |
Return element offset in bytes from the beginning of the register to the specified element.
This function should be used only for register operands and will result in Pin error if used for memory operands.
Users may use the returned offset on buffers received IARG_REG_REFERENCE/IARG_REG_CONST_REFERENCE
|
pure virtual |
Return element size in bytes
|
pure virtual |
Return whether this is a Memory operand
|
pure virtual |
Return whether this is a Register operand
|
pure virtual |
Return number of operand elements
|
pure virtual |
Return full operand size.
For operands that do not have a size (where INS_HasScatteredMemoryAccess returns TRUE) - 0 is returned.