summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp')
-rw-r--r--lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp b/lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp
index 91eb0211e1e..cdb4f622d17 100644
--- a/lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp
+++ b/lldb/source/Plugins/Process/Utility/EmulateInstructionARM.cpp
@@ -135,6 +135,9 @@ EmulateARMPushEncoding (EmulateInstructionARM *emulator, ARMEncoding encoding)
break;
case eEncodingA1:
registers = EmulateInstruction::UnsignedBits (opcode, 15, 0);
+ // Instead of return false, let's handle the following case as well,
+ // which amounts to pushing one reg onto the full descending stacks.
+ // if BitCount(register_list) < 2 then SEE STMDB / STMFD;
break;
case eEncodingA2:
t = EmulateInstruction::UnsignedBits (opcode, 15, 12);
OpenPOWER on IntegriCloud