From 09ba1a323e583e84365f2425685b804b453efb10 Mon Sep 17 00:00:00 2001 From: "Mohit K. Bhakkad" Date: Tue, 31 Mar 2015 12:01:27 +0000 Subject: [LLDB][MIPS] Read/Write register for MIPS64 Patch by Sagar Thakur Reviewers: clayborg, tberghammer. Subscribers: jaydeep, bhushan, mohit.bhakkad, llvm-commits. Differential Revision: http://reviews.llvm.org/D8695 llvm-svn: 233685 --- .../Plugins/Process/Linux/NativeProcessLinux.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp') diff --git a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp index 0dfee5ef473..6f3aa685e65 100644 --- a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -657,6 +657,17 @@ namespace m_error.SetErrorString("failed to get architecture"); } } +#elif defined (__mips__) + elf_gregset_t regs; + PTRACE(PTRACE_GETREGS, m_tid, NULL, ®s, sizeof regs, m_error); + if (m_error.Success()) + { + lldb_private::ArchSpec arch; + if (monitor->GetArchitecture(arch)) + m_value.SetBytes((void *)(((unsigned char *)(regs)) + m_offset), 8, arch.GetByteOrder()); + else + m_error.SetErrorString("failed to get architecture"); + } #else Log *log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_REGISTERS)); @@ -733,6 +744,14 @@ namespace PTRACE(PTRACE_SETREGSET, m_tid, ®set, &ioVec, sizeof regs, m_error); } } +#elif defined (__mips__) + elf_gregset_t regs; + PTRACE(PTRACE_GETREGS, m_tid, NULL, ®s, sizeof regs, m_error); + if (m_error.Success()) + { + ::memcpy((void *)(((unsigned char *)(®s)) + m_offset), m_value.GetBytes(), 8); + PTRACE(PTRACE_SETREGS, m_tid, NULL, ®s, sizeof regs, m_error); + } #else void* buf; Log *log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_REGISTERS)); -- cgit v1.2.3