From fb477b33f7b86bb692b41b32e224da224d85bce6 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Mon, 30 Sep 2024 20:33:08 +0200 Subject: [PATCH] Don't use floats as num counter replacement --- oscar64/InterCode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 88d6dda..c047cab 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -16066,7 +16066,7 @@ void InterCodeBasicBlock::EliminateDoubleLoopCounter(void) lc.mCmp = nullptr; lc.mReferenced = false; - if (ins->mCode == IC_BINARY_OPERATOR && ins->mOperator == IA_ADD) + if (ins->mCode == IC_BINARY_OPERATOR && ins->mOperator == IA_ADD && IsIntegerType(ins->mDst.mType)) { if (ins->mDst.mTemp == ins->mSrc[0].mTemp && ins->mSrc[1].mTemp < 0 || ins->mDst.mTemp == ins->mSrc[1].mTemp && ins->mSrc[0].mTemp < 0) @@ -16075,7 +16075,7 @@ void InterCodeBasicBlock::EliminateDoubleLoopCounter(void) } } #if 1 - else if (ins->mCode == IC_BINARY_OPERATOR && ins->mOperator == IA_SUB) + else if (ins->mCode == IC_BINARY_OPERATOR && ins->mOperator == IA_SUB && IsIntegerType(ins->mDst.mType)) { if (ins->mDst.mTemp == ins->mSrc[1].mTemp && ins->mSrc[0].mTemp < 0) {