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

Reply via email to