summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index 0756cfe61..0fddb07a0 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -77,13 +77,13 @@ static bool CondPassed(ARMul_State* cpu, unsigned int cond) {
case ConditionCode::LS:
return (!c_flag || z_flag);
case ConditionCode::GE:
- return ((!n_flag && !v_flag) || (n_flag && v_flag));
+ return (n_flag == v_flag);
case ConditionCode::LT:
- return ((n_flag && !v_flag) || (!n_flag && v_flag));
+ return (n_flag != v_flag);
case ConditionCode::GT:
- return ((!n_flag && !v_flag && !z_flag) || (n_flag && v_flag && !z_flag));
+ return (!z_flag && (n_flag == v_flag));
case ConditionCode::LE:
- return ((n_flag && !v_flag) || (!n_flag && v_flag)) || z_flag;
+ return (z_flag || (n_flag != v_flag));
case ConditionCode::AL:
case ConditionCode::NV: // Unconditional
return true;