diff options
Diffstat (limited to 'source/Plugins/Process/elf-core/ThreadElfCore.cpp')
-rw-r--r-- | source/Plugins/Process/elf-core/ThreadElfCore.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/source/Plugins/Process/elf-core/ThreadElfCore.cpp b/source/Plugins/Process/elf-core/ThreadElfCore.cpp index a7229663dc89..3bda86dc0f73 100644 --- a/source/Plugins/Process/elf-core/ThreadElfCore.cpp +++ b/source/Plugins/Process/elf-core/ThreadElfCore.cpp @@ -16,8 +16,11 @@ #include "ThreadElfCore.h" #include "ProcessElfCore.h" -#include "RegisterContextCoreFreeBSD_x86_64.h" -#include "RegisterContextCoreLinux_x86_64.h" +#include "RegisterContextLinux_x86_64.h" +#include "RegisterContextFreeBSD_mips64.h" +#include "RegisterContextFreeBSD_x86_64.h" +#include "RegisterContextPOSIXCore_mips64.h" +#include "RegisterContextPOSIXCore_x86_64.h" using namespace lldb; using namespace lldb_private; @@ -84,14 +87,28 @@ ThreadElfCore::CreateRegisterContextForFrame (StackFrame *frame) ArchSpec arch = process->GetArchitecture(); switch (arch.GetMachine()) { + case llvm::Triple::mips64: + switch (arch.GetTriple().getOS()) + { + case llvm::Triple::FreeBSD: + m_thread_reg_ctx_sp.reset(new RegisterContextCorePOSIX_mips64 (*this, new RegisterContextFreeBSD_mips64(arch), m_gpregset_data, m_fpregset_data)); + break; + default: + if (log) + log->Printf ("elf-core::%s:: OS(%d) not supported", + __FUNCTION__, arch.GetTriple().getOS()); + assert (false && "OS not supported"); + break; + } + break; case llvm::Triple::x86_64: switch (arch.GetTriple().getOS()) { case llvm::Triple::FreeBSD: - m_thread_reg_ctx_sp.reset(new RegisterContextCoreFreeBSD_x86_64 (*this, m_gpregset_data, m_fpregset_data)); + m_thread_reg_ctx_sp.reset(new RegisterContextCorePOSIX_x86_64 (*this, new RegisterContextFreeBSD_x86_64(arch), m_gpregset_data, m_fpregset_data)); break; case llvm::Triple::Linux: - m_thread_reg_ctx_sp.reset(new RegisterContextCoreLinux_x86_64 (*this, m_gpregset_data, m_fpregset_data)); + m_thread_reg_ctx_sp.reset(new RegisterContextCorePOSIX_x86_64 (*this, new RegisterContextLinux_x86_64(arch), m_gpregset_data, m_fpregset_data)); break; default: if (log) |