[Lldb-commits] [lldb] r125227 - /lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp

Johnny Chen johnny.chen at apple.com
Wed Feb 9 14:02:17 PST 2011


Author: johnny
Date: Wed Feb  9 16:02:17 2011
New Revision: 125227

URL: http://llvm.org/viewvc/llvm-project?rev=125227&view=rev
Log:
Modified existing Emulate* methods to call LoadWritePC(context, data) where appropriate to
effect an interworking branch if the ArchVersion() is ARMv5T and above.

Modified:
    lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp

Modified: lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp?rev=125227&r1=125226&r2=125227&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp (original)
+++ lldb/trunk/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp Wed Feb  9 16:02:17 2011
@@ -1644,7 +1644,8 @@
             uint32_t data = ReadMemoryUnsigned (context, base_address + offset, addr_byte_size, 0, &success);
             if (!success)
                 return false;
-            if (!WriteRegisterUnsigned (context, eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, data))
+            // In ARMv5T and above, this is an interworking branch.
+            if (!LoadWritePC(context, data))
                 return false;
         }
                              
@@ -1770,7 +1771,8 @@
             uint32_t data = ReadMemoryUnsigned (context, address + offset, addr_byte_size, 0, &success);
             if (!success)
                 return false;
-            if (!WriteRegisterUnsigned (context, eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, data))
+            // In ARMv5T and above, this is an interworking branch.
+            if (!LoadWritePC(context, data))
                 return false;
         }
                   
@@ -1874,7 +1876,8 @@
             uint32_t data = ReadMemoryUnsigned (context, address + offset, addr_byte_size, 0, &success);
             if (!success)
                 return false;
-            if (!WriteRegisterUnsigned (context, eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, data))
+            // In ARMv5T and above, this is an interworking branch.
+            if (!LoadWritePC(context, data))
                 return false;
         }
                   





More information about the lldb-commits mailing list