summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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