CCTLib
Calling-context and data-object attribution library for Intel Pin
ApproxGeneralRegisters< T, isAlias > Struct Template Reference

Public Member Functions

 if (isAlias)
 
 if (sizeof(T)==8) new Value
 
 if (rate<=delta &&rate >=-delta)
 
 if (newValue !=oldValue) *((T *)(&tData -> regValue[reg][0]))=newValue
 

Static Public Member Functions

static __attribute__ ((always_inline)) void CheckValues(PIN_REGISTER *regRef
 

Public Attributes

static uint32_t reg
 
static uint32_t uint32_t opaqueHandle
 
static uint32_t uint32_t THREADID threadId
 
ContextHandle_t curCtxtHandle = GetContextHandle(threadId, opaqueHandle)
 
 else
 
else newValue = regRef->flt[0]
 
oldValue = *((T*)(&tData->regValue[reg][0]))
 
rate = (newValue - oldValue) / oldValue
 
tData regCtxt [reg] = curCtxtHandle
 

Detailed Description

template<class T, bool isAlias>
struct ApproxGeneralRegisters< T, isAlias >

Definition at line 763 of file redspy_temporal_client.cpp.

Member Function Documentation

◆ __attribute__()

template<class T , bool isAlias>
static ApproxGeneralRegisters< T, isAlias >::__attribute__ ( (always_inline)  )
static

References ClientGetTLS().

◆ if() [1/4]

template<class T , bool isAlias>
ApproxGeneralRegisters< T, isAlias >::if ( isAlias  )
inline

◆ if() [2/4]

template<class T , bool isAlias>
ApproxGeneralRegisters< T, isAlias >::if ( newValue = oldValue) & -> regValue[reg][0]))=newValue

◆ if() [3/4]

template<class T , bool isAlias>
ApproxGeneralRegisters< T, isAlias >::if ( rate<=delta &&rate >=-  delta)
inline

◆ if() [4/4]

template<class T , bool isAlias>
ApproxGeneralRegisters< T, isAlias >::if ( sizeof(T)  = =8)
new

Member Data Documentation

◆ curCtxtHandle

template<class T , bool isAlias>
ContextHandle_t ApproxGeneralRegisters< T, isAlias >::curCtxtHandle = GetContextHandle(threadId, opaqueHandle)

Definition at line 767 of file redspy_temporal_client.cpp.

◆ else

template<class T , bool isAlias>
ApproxGeneralRegisters< T, isAlias >::else
Initial value:

Definition at line 790 of file redspy_temporal_client.cpp.

◆ newValue

template<class T , bool isAlias>
else ApproxGeneralRegisters< T, isAlias >::newValue = regRef->flt[0]

Definition at line 795 of file redspy_temporal_client.cpp.

◆ oldValue

template<class T , bool isAlias>
T ApproxGeneralRegisters< T, isAlias >::oldValue = *((T*)(&tData->regValue[reg][0]))

Definition at line 797 of file redspy_temporal_client.cpp.

◆ opaqueHandle

template<class T , bool isAlias>
uint32_t uint32_t ApproxGeneralRegisters< T, isAlias >::opaqueHandle

Definition at line 764 of file redspy_temporal_client.cpp.

◆ rate

template<class T , bool isAlias>
T ApproxGeneralRegisters< T, isAlias >::rate = (newValue - oldValue) / oldValue

Definition at line 798 of file redspy_temporal_client.cpp.

◆ reg

template<class T , bool isAlias>
uint32_t ApproxGeneralRegisters< T, isAlias >::reg

Definition at line 764 of file redspy_temporal_client.cpp.

◆ regCtxt

template<class T , bool isAlias>
tData ApproxGeneralRegisters< T, isAlias >::regCtxt[reg] = curCtxtHandle

Definition at line 804 of file redspy_temporal_client.cpp.

◆ threadId

template<class T , bool isAlias>
uint32_t uint32_t THREADID ApproxGeneralRegisters< T, isAlias >::threadId
Initial value:
{
RedSpyThreadData * ClientGetTLS(const THREADID threadId)
static uint32_t uint32_t THREADID threadId

Definition at line 764 of file redspy_temporal_client.cpp.


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