forked from OSchip/llvm-project
Fix condition detection in EmulateInstructionARM
The condition detection code is calculating the result of the condition based on the first 3 bit of the condition and then negate it if the LSB of the condition is set. It works for the normal conditions but 0b1110 and 0b1111 are special as both of them should evaluate to true independently the value of CPSR. This CL removes the negating logic from those cases. Differential revision: http://reviews.llvm.org/D9219 llvm-svn: 235715
This commit is contained in:
parent
0da3ee1ef3
commit
224dfbf3ae
|
@ -13036,8 +13036,7 @@ EmulateInstructionARM::ConditionPassed (const uint32_t opcode, bool *is_conditio
|
|||
// opcodes different meanings, but always means execution happens.
|
||||
if (is_conditional)
|
||||
*is_conditional = false;
|
||||
result = true;
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (cond & 1)
|
||||
|
|
Loading…
Reference in New Issue