Fix write register context for arm "add<c> <Rd>, sp, #imm"
authorTamas Berghammer <tberghammer@google.com>
Fri, 24 Apr 2015 12:13:38 +0000 (12:13 +0000)
committerTamas Berghammer <tberghammer@google.com>
Fri, 24 Apr 2015 12:13:38 +0000 (12:13 +0000)
Differential revision: http://reviews.llvm.org/D9213

llvm-svn: 235713

lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp

index 3996b24..965c02a 100644 (file)
@@ -1357,7 +1357,11 @@ EmulateInstructionARM::EmulateADDSPImm (const uint32_t opcode, const ARMEncoding
         addr_t addr = sp + sp_offset; // the adjusted stack pointer value
         
         EmulateInstruction::Context context;
-        context.type = EmulateInstruction::eContextAdjustStackPointer;
+        if (d == 13)
+            context.type = EmulateInstruction::eContextAdjustStackPointer;
+        else
+            context.type = EmulateInstruction::eContextRegisterPlusOffset;
+
         RegisterInfo sp_reg;
         GetRegisterInfo (eRegisterKindDWARF, dwarf_sp, sp_reg);
         context.SetRegisterPlusOffset (sp_reg, sp_offset);