summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2015-08-25 16:18:32 +0000
committerHans Wennborg <hans@hanshq.net>2015-08-25 16:18:32 +0000
commit9d750b971f16ff9a68e03c59e5a412eedca3a120 (patch)
treedbd06a026db2ee2fdad9add3f2ec3fb341619723
parentd362a280682333c51c926b1288761ca711689df5 (diff)
Merging r245927:release_37
------------------------------------------------------------------------ r245927 | slthakur | 2015-08-25 02:52:59 -0700 (Tue, 25 Aug 2015) | 9 lines 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 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_37@245947 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp13
1 files changed, 3 insertions, 10 deletions
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
index 8f340dafd..a39a97728 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
+++ b/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;