summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
diff options
context:
space:
mode:
authorSagar Thakur <sagar.thakur@imgtec.com>2015-10-01 15:05:31 +0000
committerSagar Thakur <sagar.thakur@imgtec.com>2015-10-01 15:05:31 +0000
commitb8862c010743f1992f6a4a903502439224193a81 (patch)
treeb07cb3d460a528a41d2a239ea77d90b285a47213 /lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
parent250c892ac163958daf7b5536a3d5eeefd48efe31 (diff)
downloadbcm5719-llvm-b8862c010743f1992f6a4a903502439224193a81.tar.gz
bcm5719-llvm-b8862c010743f1992f6a4a903502439224193a81.zip
[LLDB][MIPS] Fix gp register value for o32 applications on 64-bit target
GP registers for o32 applications were always giving zero value because SetType() on the RegisterValue was causing the accessor functions to pickup the value from m_scalar of RegisterValue which is zero. In this patch byte size and byte order of register value is set at the time of setting the value of the register. llvm-svn: 249020
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp')
-rw-r--r--lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
index 33f5263ed2a..0d48091da43 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
@@ -623,13 +623,6 @@ NativeRegisterContextLinux_mips64::ReadRegister (const RegisterInfo *reg_info, R
else
{
error = ReadRegisterRaw(reg, reg_value);
- if (error.Success())
- {
- // If our return byte size was greater than the return value reg size, then
- // use the type specified by reg_info rather than the uint64_t default
- if (reg_value.GetByteSize() > reg_info->byte_size)
- reg_value.SetType(reg_info);
- }
}
return error;
@@ -1387,7 +1380,7 @@ NativeRegisterContextLinux_mips64::DoReadRegisterValue(uint32_t offset,
{
lldb_private::ArchSpec arch;
if (m_thread.GetProcess()->GetArchitecture(arch))
- value.SetBytes((void *)(((unsigned char *)(&regs)) + offset), 8, arch.GetByteOrder());
+ value.SetBytes((void *)(((unsigned char *)&regs) + offset + 4 * (arch.GetMachine() == llvm::Triple::mips)), arch.GetAddressByteSize(), arch.GetByteOrder());
else
error.SetErrorString("failed to get architecture");
}
OpenPOWER on IntegriCloud