Signed-off-by: Lennert Buytenhek <[email protected]>
--
The LE check is obviously buggy (as easily triggered during some
testing), but I didn't audit the rest of the cases.
diff --git a/src/target/arm_simulator.c b/src/target/arm_simulator.c
index 7c610a5..93fb3dd 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;
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development