From 2f1a7d9e76fbbd7d7211fc6a9a76ac9624fbd9b4 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Mon, 9 Aug 2010 23:56:27 +0000 Subject: Remove unused powerpc unwind support. llvm-svn: 110626 --- .../Process/Utility/libunwind/src/AddressSpace.hpp | 1 - .../Utility/libunwind/src/ArchDefaultUnwinder.hpp | 7 - .../Utility/libunwind/src/DwarfInstructions.hpp | 59 --- .../Process/Utility/libunwind/src/Registers.hpp | 529 --------------------- .../libunwind/src/RemoteDebuggerDummyUnwinder.hpp | 8 - .../Utility/libunwind/src/RemoteProcInfo.hpp | 6 - .../Process/Utility/libunwind/src/UnwindCursor.hpp | 5 - 7 files changed, 615 deletions(-) (limited to 'lldb/source/Plugins/Process') diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/AddressSpace.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/AddressSpace.hpp index 5173dc0068e..6a7734e9a55 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/AddressSpace.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/AddressSpace.hpp @@ -24,7 +24,6 @@ #if !defined (SUPPORT_REMOTE_UNWINDING) #include #endif -#include #include #include diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/ArchDefaultUnwinder.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/ArchDefaultUnwinder.hpp index d19d7aea50f..f7b8790579f 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/ArchDefaultUnwinder.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/ArchDefaultUnwinder.hpp @@ -102,13 +102,6 @@ int stepByArchitectureDefault (A& addressSpace, Registers_x86& registers, return stepByArchitectureDefault_x86 (addressSpace, registers, pc, 4); } -template -int stepByArchitectureDefault (A& addressSpace, Registers_ppc& registers, - uint64_t pc) { - ABORT("Remote unwinding not supported for ppc."); - return UNW_EUNSPEC; -} - }; // namespace lldb_private #endif // SUPPORT_REMOTE_UNWINDING diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/DwarfInstructions.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/DwarfInstructions.hpp index 589c30b50b9..8b835b8cd29 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/DwarfInstructions.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/DwarfInstructions.hpp @@ -129,15 +129,6 @@ private: static compact_unwind_encoding_t createCompactEncodingFromProlog(A& addressSpace, pint_t funcAddr, const Registers_x86_64&, const typename CFI_Parser::PrologInfo& prolog, char warningBuffer[1024]); - - // ppc specific variants - static int lastRestoreReg(const Registers_ppc&); - static bool isReturnAddressRegister(int regNum, const Registers_ppc&); - static pint_t getCFA(A& addressSpace, const typename CFI_Parser::PrologInfo& prolog, const Registers_ppc&); - static compact_unwind_encoding_t encodeToUseDwarf(const Registers_ppc&); - static compact_unwind_encoding_t createCompactEncodingFromProlog(A& addressSpace, pint_t funcAddr, - const Registers_ppc&, const typename CFI_Parser::PrologInfo& prolog, - char warningBuffer[1024]); }; @@ -1626,56 +1617,6 @@ compact_unwind_encoding_t DwarfInstructions::createCompactEncodingFromProlo - - -// -// ppc specific functions -// -template -int DwarfInstructions::lastRestoreReg(const Registers_ppc&) -{ - COMPILE_TIME_ASSERT( (int)CFI_Parser::kMaxRegisterNumber > (int)UNW_PPC_SPEFSCR ); - return UNW_PPC_SPEFSCR; -} - -template -bool DwarfInstructions::isReturnAddressRegister(int regNum, const Registers_ppc&) -{ - return (regNum == UNW_PPC_LR); -} - -template -typename A::pint_t DwarfInstructions::getCFA(A& addressSpace, const typename CFI_Parser::PrologInfo& prolog, - const Registers_ppc& registers) -{ - if ( prolog.cfaRegister != 0 ) - return registers.getRegister(prolog.cfaRegister) + prolog.cfaRegisterOffset; - else if ( prolog.cfaExpression != 0 ) - return evaluateExpression(prolog.cfaExpression, addressSpace, registers, 0); - else - ABORT("getCFA(): unknown location for ppc cfa"); -} - - -template -compact_unwind_encoding_t DwarfInstructions::encodeToUseDwarf(const Registers_ppc&) -{ - return UNWIND_X86_MODE_DWARF; -} - - -template -compact_unwind_encoding_t DwarfInstructions::createCompactEncodingFromProlog(A& addressSpace, pint_t funcAddr, - const Registers_ppc& r, const typename CFI_Parser::PrologInfo& prolog, - char warningBuffer[1024]) -{ - warningBuffer[0] = '\0'; - return UNWIND_X86_MODE_DWARF; -} - - - - } // namespace lldb_private diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/Registers.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/Registers.hpp index 291c72425d4..89bd1ce4156 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/Registers.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/Registers.hpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include "libunwind.h" @@ -446,534 +445,6 @@ inline void Registers_x86_64::setVectorRegister(int num, v128 value) } -/// -/// Registers_ppc holds the register state of a thread in a 32-bit PowerPC process. -/// -class Registers_ppc -{ -public: - Registers_ppc(); - Registers_ppc(const void* registers); - - bool validRegister(int num) const; - uint32_t getRegister(int num) const; - void setRegister(int num, uint32_t value); - bool validFloatRegister(int num) const; - double getFloatRegister(int num) const; - void setFloatRegister(int num, double value); - bool validVectorRegister(int num) const; - v128 getVectorRegister(int num) const; - void setVectorRegister(int num, v128 value); - void jumpto() {} - const char* getRegisterName(int num); - uint64_t getSP() const { return fRegisters.__r1; } - void setSP(uint64_t value) { fRegisters.__r1 = value; } - uint64_t getIP() const { return fRegisters.__srr0; } - void setIP(uint64_t value) { fRegisters.__srr0 = value; } -private: - ppc_thread_state_t fRegisters; - ppc_float_state_t fFloatRegisters; - v128 fVectorRegisters[32]; // offset 424 -}; - - - -inline Registers_ppc::Registers_ppc(const void* registers) -{ - COMPILE_TIME_ASSERT( sizeof(Registers_ppc) < sizeof(unw_context_t) ); - fRegisters = *((ppc_thread_state_t*)registers); - fFloatRegisters = *((ppc_float_state_t*)((char*)registers+160)); - memcpy(fVectorRegisters, ((char*)registers+424), sizeof(fVectorRegisters)); -} - -inline Registers_ppc::Registers_ppc() -{ - bzero(&fRegisters, sizeof(fRegisters)); - bzero(&fFloatRegisters, sizeof(fFloatRegisters)); - bzero(&fVectorRegisters, sizeof(fVectorRegisters)); -} - - -inline bool Registers_ppc::validRegister(int regNum) const -{ - if ( regNum == UNW_REG_IP ) - return true; - if ( regNum == UNW_REG_SP ) - return true; - if ( regNum == UNW_PPC_VRSAVE ) - return true; - if ( regNum < 0 ) - return false; - if ( regNum <= UNW_PPC_R31 ) - return true; - if ( regNum == UNW_PPC_MQ ) - return true; - if ( regNum == UNW_PPC_LR ) - return true; - if ( regNum == UNW_PPC_CTR ) - return true; - if ( (UNW_PPC_CR0 <= regNum) && (regNum <= UNW_PPC_CR7) ) - return true; - return false; -} - - -inline uint32_t Registers_ppc::getRegister(int regNum) const -{ - switch ( regNum ) { - case UNW_REG_IP: - return fRegisters.__srr0; - case UNW_REG_SP: - return fRegisters.__r1; - case UNW_PPC_R0: - return fRegisters.__r0; - case UNW_PPC_R1: - return fRegisters.__r1; - case UNW_PPC_R2: - return fRegisters.__r2; - case UNW_PPC_R3: - return fRegisters.__r3; - case UNW_PPC_R4: - return fRegisters.__r4; - case UNW_PPC_R5: - return fRegisters.__r5; - case UNW_PPC_R6: - return fRegisters.__r6; - case UNW_PPC_R7: - return fRegisters.__r7; - case UNW_PPC_R8: - return fRegisters.__r8; - case UNW_PPC_R9: - return fRegisters.__r9; - case UNW_PPC_R10: - return fRegisters.__r10; - case UNW_PPC_R11: - return fRegisters.__r11; - case UNW_PPC_R12: - return fRegisters.__r12; - case UNW_PPC_R13: - return fRegisters.__r13; - case UNW_PPC_R14: - return fRegisters.__r14; - case UNW_PPC_R15: - return fRegisters.__r15; - case UNW_PPC_R16: - return fRegisters.__r16; - case UNW_PPC_R17: - return fRegisters.__r17; - case UNW_PPC_R18: - return fRegisters.__r18; - case UNW_PPC_R19: - return fRegisters.__r19; - case UNW_PPC_R20: - return fRegisters.__r20; - case UNW_PPC_R21: - return fRegisters.__r21; - case UNW_PPC_R22: - return fRegisters.__r22; - case UNW_PPC_R23: - return fRegisters.__r23; - case UNW_PPC_R24: - return fRegisters.__r24; - case UNW_PPC_R25: - return fRegisters.__r25; - case UNW_PPC_R26: - return fRegisters.__r26; - case UNW_PPC_R27: - return fRegisters.__r27; - case UNW_PPC_R28: - return fRegisters.__r28; - case UNW_PPC_R29: - return fRegisters.__r29; - case UNW_PPC_R30: - return fRegisters.__r30; - case UNW_PPC_R31: - return fRegisters.__r31; - case UNW_PPC_LR: - return fRegisters.__lr; - case UNW_PPC_CR0: - return (fRegisters.__cr & 0xF0000000); - case UNW_PPC_CR1: - return (fRegisters.__cr & 0x0F000000); - case UNW_PPC_CR2: - return (fRegisters.__cr & 0x00F00000); - case UNW_PPC_CR3: - return (fRegisters.__cr & 0x000F0000); - case UNW_PPC_CR4: - return (fRegisters.__cr & 0x0000F000); - case UNW_PPC_CR5: - return (fRegisters.__cr & 0x00000F00); - case UNW_PPC_CR6: - return (fRegisters.__cr & 0x000000F0); - case UNW_PPC_CR7: - return (fRegisters.__cr & 0x0000000F); - case UNW_PPC_VRSAVE: - return fRegisters.__vrsave; - } - ABORT("unsupported ppc register"); -} - - -inline void Registers_ppc::setRegister(int regNum, uint32_t value) -{ - //fprintf(stderr, "Registers_ppc::setRegister(%d, 0x%08X)\n", regNum, value); - switch ( regNum ) { - case UNW_REG_IP: - fRegisters.__srr0 = value; - return; - case UNW_REG_SP: - fRegisters.__r1 = value; - return; - case UNW_PPC_R0: - fRegisters.__r0 = value; - return; - case UNW_PPC_R1: - fRegisters.__r1 = value; - return; - case UNW_PPC_R2: - fRegisters.__r2 = value; - return; - case UNW_PPC_R3: - fRegisters.__r3 = value; - return; - case UNW_PPC_R4: - fRegisters.__r4 = value; - return; - case UNW_PPC_R5: - fRegisters.__r5 = value; - return; - case UNW_PPC_R6: - fRegisters.__r6 = value; - return; - case UNW_PPC_R7: - fRegisters.__r7 = value; - return; - case UNW_PPC_R8: - fRegisters.__r8 = value; - return; - case UNW_PPC_R9: - fRegisters.__r9 = value; - return; - case UNW_PPC_R10: - fRegisters.__r10 = value; - return; - case UNW_PPC_R11: - fRegisters.__r11 = value; - return; - case UNW_PPC_R12: - fRegisters.__r12 = value; - return; - case UNW_PPC_R13: - fRegisters.__r13 = value; - return; - case UNW_PPC_R14: - fRegisters.__r14 = value; - return; - case UNW_PPC_R15: - fRegisters.__r15 = value; - return; - case UNW_PPC_R16: - fRegisters.__r16 = value; - return; - case UNW_PPC_R17: - fRegisters.__r17 = value; - return; - case UNW_PPC_R18: - fRegisters.__r18 = value; - return; - case UNW_PPC_R19: - fRegisters.__r19 = value; - return; - case UNW_PPC_R20: - fRegisters.__r20 = value; - return; - case UNW_PPC_R21: - fRegisters.__r21 = value; - return; - case UNW_PPC_R22: - fRegisters.__r22 = value; - return; - case UNW_PPC_R23: - fRegisters.__r23 = value; - return; - case UNW_PPC_R24: - fRegisters.__r24 = value; - return; - case UNW_PPC_R25: - fRegisters.__r25 = value; - return; - case UNW_PPC_R26: - fRegisters.__r26 = value; - return; - case UNW_PPC_R27: - fRegisters.__r27 = value; - return; - case UNW_PPC_R28: - fRegisters.__r28 = value; - return; - case UNW_PPC_R29: - fRegisters.__r29 = value; - return; - case UNW_PPC_R30: - fRegisters.__r30 = value; - return; - case UNW_PPC_R31: - fRegisters.__r31 = value; - return; - case UNW_PPC_MQ: - fRegisters.__mq = value; - return; - case UNW_PPC_LR: - fRegisters.__lr = value; - return; - case UNW_PPC_CTR: - fRegisters.__ctr = value; - return; - case UNW_PPC_CR0: - fRegisters.__cr &= 0x0FFFFFFF; - fRegisters.__cr |= (value & 0xF0000000); - return; - case UNW_PPC_CR1: - fRegisters.__cr &= 0xF0FFFFFF; - fRegisters.__cr |= (value & 0x0F000000); - return; - case UNW_PPC_CR2: - fRegisters.__cr &= 0xFF0FFFFF; - fRegisters.__cr |= (value & 0x00F00000); - return; - case UNW_PPC_CR3: - fRegisters.__cr &= 0xFFF0FFFF; - fRegisters.__cr |= (value & 0x000F0000); - return; - case UNW_PPC_CR4: - fRegisters.__cr &= 0xFFFF0FFF; - fRegisters.__cr |= (value & 0x0000F000); - return; - case UNW_PPC_CR5: - fRegisters.__cr &= 0xFFFFF0FF; - fRegisters.__cr |= (value & 0x00000F00); - return; - case UNW_PPC_CR6: - fRegisters.__cr &= 0xFFFFFF0F; - fRegisters.__cr |= (value & 0x000000F0); - return; - case UNW_PPC_CR7: - fRegisters.__cr &= 0xFFFFFFF0; - fRegisters.__cr |= (value & 0x0000000F); - return; - case UNW_PPC_VRSAVE: - fRegisters.__vrsave = value; - return; - // not saved - return; - case UNW_PPC_XER: - fRegisters.__xer = value; - return; - case UNW_PPC_AP: - case UNW_PPC_VSCR: - case UNW_PPC_SPEFSCR: - // not saved - return; - } - ABORT("unsupported ppc register"); -} - -inline bool Registers_ppc::validFloatRegister(int regNum) const -{ - if ( regNum < UNW_PPC_F0 ) - return false; - if ( regNum > UNW_PPC_F31 ) - return false; - return true; -} - -inline double Registers_ppc::getFloatRegister(int regNum) const -{ - assert(validFloatRegister(regNum)); - return fFloatRegisters.__fpregs[regNum-UNW_PPC_F0]; -} - -inline void Registers_ppc::setFloatRegister(int regNum, double value) -{ - //fprintf(stderr, "Registers_ppc::setFloatRegister(%d, %g))\n", regNum, value); - assert(validFloatRegister(regNum)); - fFloatRegisters.__fpregs[regNum-UNW_PPC_F0] = value; -} - - -inline bool Registers_ppc::validVectorRegister(int regNum) const -{ - if ( regNum < UNW_PPC_V0 ) - return false; - if ( regNum > UNW_PPC_V31 ) - return false; - return true; -} - -v128 Registers_ppc::getVectorRegister(int regNum) const -{ - assert(validVectorRegister(regNum)); - v128 result = fVectorRegisters[regNum-UNW_PPC_V0]; - //fprintf(stderr, "Registers_ppc::getVectorRegister(this=%p, %d) => <0x%08X, 0x%08X, 0x%08X, 0x%08X> \n", - // this, regNum, result.vec[0], result.vec[1], result.vec[2], result.vec[3]); - return result; -} - -void Registers_ppc::setVectorRegister(int regNum, v128 value) -{ - assert(validVectorRegister(regNum)); - //fprintf(stderr, "Registers_ppc::setVectorRegister(this=%p, %d) <0x%08X, 0x%08X, 0x%08X, 0x%08X> => <0x%08X, 0x%08X, 0x%08X, 0x%08X> \n", - // this, regNum, fVectorRegisters[regNum-UNW_PPC_V0].vec[0], fVectorRegisters[regNum-UNW_PPC_V0].vec[1], fVectorRegisters[regNum-UNW_PPC_V0].vec[2], - // fVectorRegisters[regNum-UNW_PPC_V0].vec[3], value.vec[0], value.vec[1], value.vec[2], value.vec[3]); - fVectorRegisters[regNum-UNW_PPC_V0] = value; -} - - -inline const char* Registers_ppc::getRegisterName(int regNum) -{ - switch ( regNum ) { - case UNW_REG_IP: - return "ip"; - case UNW_REG_SP: - return "sp"; - case UNW_PPC_R0: - return "r0"; - case UNW_PPC_R1: - return "r1"; - case UNW_PPC_R2: - return "r2"; - case UNW_PPC_R3: - return "r3"; - case UNW_PPC_R4: - return "r4"; - case UNW_PPC_R5: - return "r5"; - case UNW_PPC_R6: - return "r6"; - case UNW_PPC_R7: - return "r7"; - case UNW_PPC_R8: - return "r8"; - case UNW_PPC_R9: - return "r9"; - case UNW_PPC_R10: - return "r10"; - case UNW_PPC_R11: - return "r11"; - case UNW_PPC_R12: - return "r12"; - case UNW_PPC_R13: - return "r13"; - case UNW_PPC_R14: - return "r14"; - case UNW_PPC_R15: - return "r15"; - case UNW_PPC_R16: - return "r16"; - case UNW_PPC_R17: - return "r17"; - case UNW_PPC_R18: - return "r18"; - case UNW_PPC_R19: - return "r19"; - case UNW_PPC_R20: - return "r20"; - case UNW_PPC_R21: - return "r21"; - case UNW_PPC_R22: - return "r22"; - case UNW_PPC_R23: - return "r23"; - case UNW_PPC_R24: - return "r24"; - case UNW_PPC_R25: - return "r25"; - case UNW_PPC_R26: - return "r26"; - case UNW_PPC_R27: - return "r27"; - case UNW_PPC_R28: - return "r28"; - case UNW_PPC_R29: - return "r29"; - case UNW_PPC_R30: - return "r30"; - case UNW_PPC_R31: - return "r31"; - case UNW_PPC_F0: - return "fp0"; - case UNW_PPC_F1: - return "fp1"; - case UNW_PPC_F2: - return "fp2"; - case UNW_PPC_F3: - return "fp3"; - case UNW_PPC_F4: - return "fp4"; - case UNW_PPC_F5: - return "fp5"; - case UNW_PPC_F6: - return "fp6"; - case UNW_PPC_F7: - return "fp7"; - case UNW_PPC_F8: - return "fp8"; - case UNW_PPC_F9: - return "fp9"; - case UNW_PPC_F10: - return "fp10"; - case UNW_PPC_F11: - return "fp11"; - case UNW_PPC_F12: - return "fp12"; - case UNW_PPC_F13: - return "fp13"; - case UNW_PPC_F14: - return "fp14"; - case UNW_PPC_F15: - return "fp15"; - case UNW_PPC_F16: - return "fp16"; - case UNW_PPC_F17: - return "fp17"; - case UNW_PPC_F18: - return "fp18"; - case UNW_PPC_F19: - return "fp19"; - case UNW_PPC_F20: - return "fp20"; - case UNW_PPC_F21: - return "fp21"; - case UNW_PPC_F22: - return "fp22"; - case UNW_PPC_F23: - return "fp23"; - case UNW_PPC_F24: - return "fp24"; - case UNW_PPC_F25: - return "fp25"; - case UNW_PPC_F26: - return "fp26"; - case UNW_PPC_F27: - return "fp27"; - case UNW_PPC_F28: - return "fp28"; - case UNW_PPC_F29: - return "fp29"; - case UNW_PPC_F30: - return "fp30"; - case UNW_PPC_F31: - return "fp31"; - case UNW_PPC_LR: - return "lr"; - default: - return "unknown register"; - } - - -} - - } // namespace lldb_private diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteDebuggerDummyUnwinder.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteDebuggerDummyUnwinder.hpp index 1db3faffd10..b7e833eb871 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteDebuggerDummyUnwinder.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteDebuggerDummyUnwinder.hpp @@ -72,14 +72,6 @@ int stepOutOfDebuggerDummyFrame (A& addressSpace, Registers_x86& registers, return UNW_STEP_SUCCESS; } -template -int stepOutOfDebuggerDummyFrame (A& addressSpace, Registers_ppc& registers, - uint64_t ip, uint64_t sp) -{ - ABORT ("stepping out of a debugger dummy frame not supported on ppc"); - return UNW_EUNSPEC; -} - }; // namespace lldb_private #endif // SUPPORT_REMOTE_UNWINDING diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteProcInfo.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteProcInfo.hpp index 8826bb271d7..ee9901c6211 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteProcInfo.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/RemoteProcInfo.hpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -977,11 +976,6 @@ void getRemoteContext (RemoteProcInfo* procinfo, Registers_x86& r, void *arg) { #undef FILLREG } - -void getRemoteContext (RemoteProcInfo* procinfo, Registers_ppc& r, void *arg) { - ABORT("ppc get remote context not implemented."); -} - }; // namespace lldb_private diff --git a/lldb/source/Plugins/Process/Utility/libunwind/src/UnwindCursor.hpp b/lldb/source/Plugins/Process/Utility/libunwind/src/UnwindCursor.hpp index a29d742f1ed..5e072b09c99 100644 --- a/lldb/source/Plugins/Process/Utility/libunwind/src/UnwindCursor.hpp +++ b/lldb/source/Plugins/Process/Utility/libunwind/src/UnwindCursor.hpp @@ -337,8 +337,6 @@ protected: { return CompactUnwinder_x86_64::stepWithCompactEncoding(fInfo.format, fInfo.start_ip, fAddressSpace, fRegisters); } int stepWithCompactEncoding(Registers_x86&) { return CompactUnwinder_x86::stepWithCompactEncoding(fInfo.format, fInfo.start_ip, fAddressSpace, fRegisters); } - int stepWithCompactEncoding(Registers_ppc&) - { return UNW_EINVAL; } #if FOR_DYLD #if __ppc__ @@ -381,13 +379,10 @@ protected: #endif return false; } - virtual bool dwarfWithOffset(Registers_ppc&, uint32_t& offset) const { return true; } - virtual compact_unwind_encoding_t dwarfEncoding() const { R dummy; return dwarfEncoding(dummy); } virtual compact_unwind_encoding_t dwarfEncoding(Registers_x86_64&) const { return UNWIND_X86_64_MODE_DWARF; } virtual compact_unwind_encoding_t dwarfEncoding(Registers_x86&) const { return UNWIND_X86_MODE_DWARF; } - virtual compact_unwind_encoding_t dwarfEncoding(Registers_ppc&) const { return 0; } unw_proc_info_t fInfo; R fRegisters; -- cgit v1.2.3