[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