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:
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 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;