From e2fc0f03c99bc70e91625e88ae467e3c9739ff2f Mon Sep 17 00:00:00 2001 From: Stefanos Kornilios Mitsis Poiitidis Date: Sun, 6 Sep 2020 22:42:55 +0300 Subject: [PATCH] loopOp: Constant takes size in bits, not bytes --- External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index b6c6e142d..098f06d06 100644 --- a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -724,7 +724,7 @@ void OpDispatchBuilder::LoopOp(OpcodeArgs) { uint64_t Target = Op->PC + Op->InstSize + Op->Src[1].TypeLiteral.Literal; OrderedNode *CondReg = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, -1); - CondReg = _Sub(CondReg, _Constant(SrcSize, 1)); + CondReg = _Sub(CondReg, _Constant(SrcSize * 8, 1)); StoreResult(GPRClass, Op, Op->Src[0], CondReg, -1); SrcCond = _Select(FEXCore::IR::COND_NEQ,