[Lldb-commits] [PATCH] D16814: Fix handling of the arm IT instruction in the unwinder
Tamas Berghammer via lldb-commits
lldb-commits at lists.llvm.org
Tue Feb 9 05:43:21 PST 2016
tberghammer added a comment.
Jason: Can you take at the change in the unwinding logic?
Comment at: source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp:13653
@@ -13656,2 +13652,3 @@
const uint32_t cond = CurrentCond (m_opcode.GetOpcode32());
- return cond != 0xe && cond != 0xf && cond != UINT32_MAX;
+ if (cond == 0xe || cond == 0xf || cond == UINT32_MAX)
+ return EmulateInstruction::UnconditionalCondition;
> Do you want to use UnconditionalCondition (or k_unconditional_condition) instead of UINT32_MAX here?
No, here we are inside EmulateInstructionARM. CurrentCond returns UINT32_MAX as a failure value what we want to treat as unconditional (as we can't do anything better). Changing CurrentCond to return UnconditionalCondition in case of a failure won't make any sense either.
More information about the lldb-commits