From ed1e45b3887f89655c2475f45149f6dad14c0e0c Mon Sep 17 00:00:00 2001
From: Lennert Buytenhek <buytenh@wantstofly.org>
Date: Tue, 13 Oct 2009 20:27:03 +0200
Subject: [PATCH] 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>
---
 src/target/arm_simulator.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/target/arm_simulator.c b/src/target/arm_simulator.c
index 7c610a5ba..93fb3dd9b 100644
--- a/src/target/arm_simulator.c
+++ b/src/target/arm_simulator.c
@@ -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;
-- 
GitLab