Pin
Public Member Functions | List of all members
LEVEL_CORE::MEM_ADDR_EXP Struct Reference

Public Member Functions

REG Base () const
 
REG Index () const
 
UINT32 Scale () const
 
INT32 Offset () const
 
MEM_ADDR_EXPBase (REG base)
 
MEM_ADDR_EXPIndex (REG index)
 
MEM_ADDR_EXPScale (UINT32 scale)
 
MEM_ADDR_EXPOffset (INT32 offset)
 
MEM_ADDR_EXPInit (REG base=REG_INVALID(), INT32 offset=0, REG index=REG_INVALID(), UINT32 scale=0)
 
BOOL IsNull () const
 
ADDRINT Evaluate (ADDRINT baseVal, ADDRINT indexVal) const
 
template<class T >
ADDRINT EvaluateOn (const T &ctxt) const
 
std::string ToString () const
 

Detailed Description

Expression that evaluates memory address for a given base and index registers, offset and scale (similar to ia32(e) memory operand)

Note
this structure is intentionally only 64 bits wide. It is used in memory-critical objects, so do not make it bigger.

Member Function Documentation

◆ Base()

REG LEVEL_CORE::MEM_ADDR_EXP::Base ( ) const
inline

Accessors

◆ Evaluate()

ADDRINT LEVEL_CORE::MEM_ADDR_EXP::Evaluate ( ADDRINT  baseVal,
ADDRINT  indexVal 
) const
inline

Evaluate expression for given values of base and index registers

◆ EvaluateOn()

template<class T >
ADDRINT LEVEL_CORE::MEM_ADDR_EXP::EvaluateOn ( const T &  ctxt) const
inline

Template function that evaluates expression on a context object of class T that implements method ADDRINT T::GetContextReg(REG reg) const

◆ Init()

MEM_ADDR_EXP& LEVEL_CORE::MEM_ADDR_EXP::Init ( REG  base = REG_INVALID(),
INT32  offset = 0,
REG  index = REG_INVALID(),
UINT32  scale = 0 
)
inline

Initialize (construct) the expression. Default arguments specify expression which is always evaluated to NULL

◆ IsNull()

BOOL LEVEL_CORE::MEM_ADDR_EXP::IsNull ( ) const
inline

Return TRUE if expression is always evaluated to NULL

◆ ToString()

std::string LEVEL_CORE::MEM_ADDR_EXP::ToString ( ) const
inline

Return string representation of the expression


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