summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
diff options
context:
space:
mode:
authorSagar Thakur <sagar.thakur@imgtec.com>2015-08-25 09:52:59 +0000
committerSagar Thakur <sagar.thakur@imgtec.com>2015-08-25 09:52:59 +0000
commit30241177574be6cd03677884a9ece5c5bf823653 (patch)
treee7734c93d7ab67d8127d1284a4c11130d3de1d4d /lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
parentdf21015903856e4f0424a02d01315f79f5d8db55 (diff)
downloadbcm5719-llvm-30241177574be6cd03677884a9ece5c5bf823653.tar.gz
bcm5719-llvm-30241177574be6cd03677884a9ece5c5bf823653.zip
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 llvm-svn: 245927
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp')
-rw-r--r--lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp13
1 files changed, 3 insertions, 10 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
index ac7a5aac4b2..c895f8d4466 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
@@ -584,7 +584,6 @@ NativeRegisterContextLinux_mips64::ReadRegister (const RegisterInfo *reg_info, R
if (IsMSA(reg) || IsFPR(reg))
{
uint8_t *src;
- type128 int128;
error = ReadCP1();
@@ -604,9 +603,6 @@ NativeRegisterContextLinux_mips64::ReadRegister (const RegisterInfo *reg_info, R
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::ReadRegister (const RegisterInfo *reg_info, R
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::WriteRegister (const RegisterInfo *reg_info,
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::WriteRegister (const RegisterInfo *reg_info,
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::WriteRegister (const RegisterInfo *reg_info,
*(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;
OpenPOWER on IntegriCloud