diff options
| -rw-r--r-- | arch/armv7/thumb2_disasm/il_thumb2.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/armv7/thumb2_disasm/il_thumb2.cpp b/arch/armv7/thumb2_disasm/il_thumb2.cpp index f46a8641..50f9b3ef 100644 --- a/arch/armv7/thumb2_disasm/il_thumb2.cpp +++ b/arch/armv7/thumb2_disasm/il_thumb2.cpp @@ -1474,12 +1474,13 @@ bool GetLowLevelILForThumbInstruction(Architecture* arch, LowLevelILFunction& il else il.AddInstruction(il.SetRegister(4, LLIL_TEMP(0), il.Register(4, baseReg))); + uint32_t targetReg = decBeforeMode ? LLIL_TEMP(0) : baseReg; for (int32_t i = 0, slot = 0; i <= regLimit; i++) { if ((regs >> i) & 1) { il.AddInstruction(il.Store(4, - il.Add(4, il.Register(4, LLIL_TEMP(0)), il.Const(4, 4 * slot++)), + il.Add(4, il.Register(4, targetReg), il.Const(4, 4 * slot++)), il.Register(4, GetRegisterByIndex(i)))); } } |
