Author: mohit.bhakkad
Date: Mon Jan 11 23:55:03 2016
New Revision: 257447

URL: http://llvm.org/viewvc/llvm-project?rev=257447&view=rev
Log:
[LLDB][MIPS] Fix ReadRegisterValue for registers with constant 32 bit size 
regardless of ABI

Reviewers: clayborg, tberghammer.
Subscribers: jaydeep, bhushan, sagar, nitesh.jain, lldb-commits.
Differential Revision: http://reviews.llvm.org/D16060

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=257447&r1=257446&r2=257447&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp 
(original)
+++ 
lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp 
Mon Jan 11 23:55:03 2016
@@ -1388,7 +1388,15 @@ NativeRegisterContextLinux_mips64::DoRea
     {
         lldb_private::ArchSpec arch;
         if (m_thread.GetProcess()->GetArchitecture(arch))
-            value.SetBytes((void *)(((unsigned char *)&regs) + offset + 4 * 
(arch.GetMachine() == llvm::Triple::mips)), arch.GetFlags() & 
lldb_private::ArchSpec::eMIPSABI_O32 ? 4 : 8, arch.GetByteOrder());
+        {
+            void* target_address = ((uint8_t*)&regs) + offset + 4 * 
(arch.GetMachine() == llvm::Triple::mips;
+            uint32_t target_size;
+            if ((::strcmp(reg_name, "sr") == 0) || (::strcmp(reg_name, 
"cause") == 0) || (::strcmp(reg_name, "config5") == 0))
+                target_size = 4;
+            else
+                target_size = arch.GetFlags() & 
lldb_private::ArchSpec::eMIPSABI_O32 ? 4 : 8;
+            value.SetBytes(target_address, target_size, arch.GetByteOrder());
+        }
         else
             error.SetErrorString("failed to get architecture");
     }


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to