From 138cdccaf9a81bb80e1e087453a04ac868de8d5e Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Sun, 7 Feb 2016 21:56:56 -0600 Subject: [PATCH] Fix code generation for && and || - The test condition should be the same for both sides of the operators. --- src/thingdef/thingdef_expression.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/thingdef/thingdef_expression.cpp b/src/thingdef/thingdef_expression.cpp index a877a4e1ab..8ae850a71c 100644 --- a/src/thingdef/thingdef_expression.cpp +++ b/src/thingdef/thingdef_expression.cpp @@ -1681,7 +1681,7 @@ ExpEmit FxBinaryLogical::Emit(VMFunctionBuilder *build) op2.Free(build); ExpEmit to(build, REGT_INT); - build->Emit(OP_EQ_K, 0, op2.RegNum, zero); + build->Emit(OP_EQ_K, 1, op2.RegNum, zero); build->Emit(OP_JMP, 2); build->Emit(OP_LI, to.RegNum, 1); build->Emit(OP_JMP, 1); @@ -1702,7 +1702,7 @@ ExpEmit FxBinaryLogical::Emit(VMFunctionBuilder *build) op2.Free(build); ExpEmit to(build, REGT_INT); - build->Emit(OP_EQ_K, 1, op2.RegNum, zero); + build->Emit(OP_EQ_K, 0, op2.RegNum, zero); build->Emit(OP_JMP, 2); build->Emit(OP_LI, to.RegNum, 0); build->Emit(OP_JMP, 1);