[Lldb-commits] [lldb] r245927 - Fix build on mips
Sagar Thakur via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 25 02:53:00 PDT 2015
Author: slthakur
Date: Tue Aug 25 04:52:59 2015
New Revision: 245927
URL: http://llvm.org/viewvc/llvm-project?rev=245927&view=rev
Log:
Fix build on mips
Setting and getting register values as bytes instead of depending on the 128 bit integer support in register value.
This patch will fix the build failure in the release branch.
Reviewers: tberghammer, clayborg, hans
Subscribers: bhushan, nitesh.jain, jaydeep, lldb-commits
Differential: http://reviews.llvm.org/D12275
Modified:
lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
Modified: lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp?rev=245927&r1=245926&r2=245927&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp Tue Aug 25 04:52:59 2015
@@ -584,7 +584,6 @@ NativeRegisterContextLinux_mips64::ReadR
if (IsMSA(reg) || IsFPR(reg))
{
uint8_t *src;
- type128 int128;
error = ReadCP1();
@@ -604,9 +603,6 @@ NativeRegisterContextLinux_mips64::ReadR
assert (reg_info->byte_offset < sizeof(UserArea));
src = (uint8_t *)&m_msa + reg_info->byte_offset - (sizeof(m_gpr) + sizeof(m_fpr));
}
- int128.x[0] = *(uint64_t *)src;
- int128.x[1] = *(uint64_t *)(src + 8);
- llvm::APInt rhs = llvm::APInt(128, 2, int128.x);
switch (reg_info->byte_size)
{
case 4:
@@ -616,7 +612,7 @@ NativeRegisterContextLinux_mips64::ReadR
reg_value.SetUInt64(*(uint64_t *)src);
break;
case 16:
- reg_value.SetUInt128(rhs);
+ reg_value.SetBytes((const void *)src, 16, GetByteOrder());
break;
default:
assert(false && "Unhandled data size.");
@@ -660,7 +656,7 @@ NativeRegisterContextLinux_mips64::Write
if (IsFPR(reg_index) || IsMSA(reg_index))
{
uint8_t *dst;
- const uint64_t *src;
+ uint64_t *src;
// Initialise the FP and MSA buffers by reading all co-processor 1 registers
ReadCP1();
@@ -675,8 +671,6 @@ NativeRegisterContextLinux_mips64::Write
assert (reg_info->byte_offset < sizeof(UserArea));
dst = (uint8_t *)&m_msa + reg_info->byte_offset - (sizeof(m_gpr) + sizeof(m_fpr));
}
- llvm::APInt lhs;
- llvm::APInt fail_value = llvm::APInt::getMaxValue(128);
switch (reg_info->byte_size)
{
case 4:
@@ -686,8 +680,7 @@ NativeRegisterContextLinux_mips64::Write
*(uint64_t *)dst = reg_value.GetAsUInt64();
break;
case 16:
- lhs = reg_value.GetAsUInt128(fail_value);
- src = lhs.getRawData();
+ src = (uint64_t *)reg_value.GetBytes();
*(uint64_t *)dst = *src;
*(uint64_t *)(dst + 8) = *(src + 1);
break;
More information about the lldb-commits
mailing list