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; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits