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>
__archive__
Lennert Buytenhek 2009-10-13 20:27:03 +02:00 committed by David Brownell
parent 5535399a46
commit ed1e45b388
1 changed files with 3 additions and 3 deletions

View File

@ -243,9 +243,9 @@ int pass_condition(uint32_t cpsr, uint32_t opcode)
else
return 0;
case 0xd: /* LE */
if ((cpsr & 0x40000000) &&
(((cpsr & 0x80000000) && !(cpsr & 0x10000000))
|| (!(cpsr & 0x80000000) && (cpsr & 0x10000000))))
if ((cpsr & 0x40000000) ||
((cpsr & 0x80000000) && !(cpsr & 0x10000000))
|| (!(cpsr & 0x80000000) && (cpsr & 0x10000000)))
return 1;
else
return 0;