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

Public Member Functions

 if (aliasGroup==ALIAS_GENERIC)
 

Static Public Member Functions

static __attribute__ ((always_inline)) void CheckUpdateGenericAlias(uint8_t regId
 

Public Attributes

static T value
 
static T uint32_t opaqueHandle
 
static T uint32_t THREADID threadId
 
ContextHandle_t curCtxtHandle = GetContextHandle(threadId, opaqueHandle)
 
uint8_t byteOffset = aliasGroup == ALIAS_HIGH_BYTE ? 1 : 0
 
T * where = (T*)(&tData->aliasValue[regId][byteOffset])
 
if where
 
 else
 
tData aliasCtxt [regId][ALIAS_GENERIC] = curCtxtHandle
 

Detailed Description

template<class T, AliasGroup aliasGroup>
struct HandleAliasRegisters< T, aliasGroup >

Definition at line 612 of file redspy_temporal_client.cpp.

Member Function Documentation

◆ __attribute__()

template<class T , AliasGroup aliasGroup>
static HandleAliasRegisters< T, aliasGroup >::__attribute__ ( (always_inline)  )
static

References ClientGetTLS().

◆ if()

template<class T , AliasGroup aliasGroup>
HandleAliasRegisters< T, aliasGroup >::if ( aliasGroup  = ALIAS_GENERIC)
inline

Member Data Documentation

◆ aliasCtxt

template<class T , AliasGroup aliasGroup>
tData HandleAliasRegisters< T, aliasGroup >::aliasCtxt[regId][ALIAS_GENERIC] = curCtxtHandle

Definition at line 632 of file redspy_temporal_client.cpp.

◆ byteOffset

template<class T , AliasGroup aliasGroup>
uint8_t HandleAliasRegisters< T, aliasGroup >::byteOffset = aliasGroup == ALIAS_HIGH_BYTE ? 1 : 0

Definition at line 619 of file redspy_temporal_client.cpp.

◆ curCtxtHandle

template<class T , AliasGroup aliasGroup>
ContextHandle_t HandleAliasRegisters< T, aliasGroup >::curCtxtHandle = GetContextHandle(threadId, opaqueHandle)

Definition at line 615 of file redspy_temporal_client.cpp.

◆ else

template<class T , AliasGroup aliasGroup>
HandleAliasRegisters< T, aliasGroup >::else

◆ opaqueHandle

template<class T , AliasGroup aliasGroup>
T uint32_t HandleAliasRegisters< T, aliasGroup >::opaqueHandle

Definition at line 613 of file redspy_temporal_client.cpp.

◆ threadId

template<class T , AliasGroup aliasGroup>
T uint32_t THREADID HandleAliasRegisters< T, aliasGroup >::threadId
Initial value:
{
RedSpyThreadData * ClientGetTLS(const THREADID threadId)
static T uint32_t THREADID threadId

Definition at line 613 of file redspy_temporal_client.cpp.

◆ value

template<class T , AliasGroup aliasGroup>
T HandleAliasRegisters< T, aliasGroup >::value

Definition at line 613 of file redspy_temporal_client.cpp.

◆ where [1/2]

template<class T , AliasGroup aliasGroup>
T* HandleAliasRegisters< T, aliasGroup >::where = (T*)(&tData->aliasValue[regId][byteOffset])

Definition at line 625 of file redspy_temporal_client.cpp.

◆ where [2/2]

template<class T , AliasGroup aliasGroup>
if HandleAliasRegisters< T, aliasGroup >::where
Initial value:
{
AddToRedTable(MAKE_CONTEXT_PAIR(tData->aliasCtxt[regId][aliasGroup], curCtxtHandle), sizeof(T), threadId)
static void AddToRedTable(uint64_t key, uint16_t value, THREADID threadId) __attribute__((always_inline
#define MAKE_CONTEXT_PAIR(a, b)

Definition at line 627 of file redspy_temporal_client.cpp.


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