From 7d180069e398734fac04c385f4732668eeee4b75 Mon Sep 17 00:00:00 2001 From: Chronos Ouroboros Date: Mon, 17 Feb 2025 06:53:26 -0300 Subject: [PATCH] Fix FxExpression::EmitCompare not properly handling constant registers. --- src/common/scripting/backend/codegen.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/common/scripting/backend/codegen.cpp b/src/common/scripting/backend/codegen.cpp index 10dc29576..92b68d703 100644 --- a/src/common/scripting/backend/codegen.cpp +++ b/src/common/scripting/backend/codegen.cpp @@ -387,6 +387,30 @@ void FxExpression::EmitCompare(VMFunctionBuilder *build, bool invert, TArrayEmit(OP_LK, temp.RegNum, op.RegNum); + break; + + case REGT_FLOAT: + build->Emit(OP_LKF, temp.RegNum, op.RegNum); + break; + + case REGT_POINTER: + build->Emit(OP_LKP, temp.RegNum, op.RegNum); + break; + + case REGT_STRING: + build->Emit(OP_LKS, temp.RegNum, op.RegNum); + break; + + default: + break; + } + op.Free(build); + op = temp; } switch (op.RegType) {