84 ByteSet(
static_cast<void*
>(
m_RegisterStates), 0,
sizeof(RegisterState) * DWARF_MAX_REGISTERS);
85 ByteSet(
static_cast<void*
>(
m_R), 0,
sizeof(uintptr_t) * DWARF_MAX_REGISTERS);
95 m_CfaOffset(other.m_CfaOffset),
99 static_cast<const void*
>(other.m_RegisterStates),
100 sizeof(RegisterState) * DWARF_MAX_REGISTERS);
101 MemoryCopy(
static_cast<void*
>(
m_R),
static_cast<const void*
>(other.m_R),
102 sizeof(uintptr_t) * DWARF_MAX_REGISTERS);
108 m_CfaOffset = other.m_CfaOffset;
112 static_cast<const void*
>(other.m_RegisterStates),
113 sizeof(RegisterState) * DWARF_MAX_REGISTERS);
114 MemoryCopy(
static_cast<void*
>(
m_R),
static_cast<const void*
>(other.m_R),
115 sizeof(uintptr_t) * DWARF_MAX_REGISTERS);
119 processor_register_t getCfa(
const DwarfState& initialState)
const {
124 case ValExpression: {
125 WARNING(
"DwarfState::getCfa: Expression type not implemented.");
129 ERROR(
"CfaState invalid!");
145 return initialState.
m_R[nRegister];
153 if (getCfa(initialState) < 0x2000) {
154 WARNING(
"Malformed CFA!");
160 return *
reinterpret_cast<processor_register_t*
>(getCfa(initialState) +
161 static_cast<ssize_t
>(
m_R[nRegister]));
168 return getCfa(initialState) +
static_cast<ssize_t
>(
m_R[nRegister]);
174 return initialState.
m_R[nRegister];
181 case ValExpression: {
202 processor_register_t
m_R[DWARF_MAX_REGISTERS];
213 processor_register_t m_CfaOffset;