Pin
Public Member Functions | List of all members
ISCATTERED_MEMORY_REWRITE Class Referenceabstract

Public Member Functions

virtual UINT32 NumOfElements () const =0
 
virtual USIZE ElementSize (UINT32 element_index) const =0
 
virtual UINT32 ElementMaskValue (UINT32 element_index) const =0
 
virtual UINT32 ElementOffset (UINT32 element_index) const =0
 
virtual ADDRINT ElementAddress (UINT32 element_index) const =0
 
virtual VOID SetElementAddress (UINT32 element_index, ADDRINT address)=0
 

Detailed Description

Used in instruction rewrite for operands with scattered memory access.

Member Function Documentation

◆ ElementAddress()

virtual ADDRINT ISCATTERED_MEMORY_REWRITE::ElementAddress ( UINT32  element_index) const
pure virtual

Return element effective address

◆ ElementMaskValue()

virtual UINT32 ISCATTERED_MEMORY_REWRITE::ElementMaskValue ( UINT32  element_index) const
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 N'th bit in the mask is set.
If the mask register is a vector register then 1 is returned if the high bit of the N'th mask element (size of mask element depends on the instruction) is set.

◆ ElementOffset()

virtual UINT32 ISCATTERED_MEMORY_REWRITE::ElementOffset ( UINT32  element_index) const
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

◆ ElementSize()

virtual USIZE ISCATTERED_MEMORY_REWRITE::ElementSize ( UINT32  element_index) const
pure virtual

Return element size in bytes

◆ NumOfElements()

virtual UINT32 ISCATTERED_MEMORY_REWRITE::NumOfElements ( ) const
pure virtual

Return number of memory operand elements

◆ SetElementAddress()

virtual VOID ISCATTERED_MEMORY_REWRITE::SetElementAddress ( UINT32  element_index,
ADDRINT  address 
)
pure virtual

Set new element effective address


The documentation for this class was generated from the following file: