diff options
| author | Mohit K. Bhakkad <mohit.bhakkad@gmail.com> | 2015-03-31 12:01:27 +0000 |
|---|---|---|
| committer | Mohit K. Bhakkad <mohit.bhakkad@gmail.com> | 2015-03-31 12:01:27 +0000 |
| commit | 09ba1a323e583e84365f2425685b804b453efb10 (patch) | |
| tree | 354ce4a9866a4c8724a77d5a70ded035049190c7 /lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp | |
| parent | 7aed6890fdf81853af7477cea20b63da85754e2c (diff) | |
| download | bcm5719-llvm-09ba1a323e583e84365f2425685b804b453efb10.tar.gz bcm5719-llvm-09ba1a323e583e84365f2425685b804b453efb10.zip | |
[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
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp')
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
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)); |

