fix pass_condition() LE condition code check
The LE check is obviously buggy (as easily triggered during some testing), but I didn't audit the rest of the cases. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
parent
5535399a46
commit
ed1e45b388
|
@ -243,9 +243,9 @@ int pass_condition(uint32_t cpsr, uint32_t opcode)
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
case 0xd: /* LE */
|
case 0xd: /* LE */
|
||||||
if ((cpsr & 0x40000000) &&
|
if ((cpsr & 0x40000000) ||
|
||||||
(((cpsr & 0x80000000) && !(cpsr & 0x10000000))
|
((cpsr & 0x80000000) && !(cpsr & 0x10000000))
|
||||||
|| (!(cpsr & 0x80000000) && (cpsr & 0x10000000))))
|
|| (!(cpsr & 0x80000000) && (cpsr & 0x10000000)))
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue