From fefb5114046fcc33e18843317f7395f859a389a1 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sat, 15 Mar 2025 17:59:45 +0100 Subject: [PATCH] Fix integer range loss in loop index reduction --- oscar64/InterCode.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 5b915b0..cc93328 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -15915,6 +15915,11 @@ bool InterCodeBasicBlock::SingleTailLoopOptimization(const NumberSet& aliasedPar ains->mSrc[0].mIntConst = s; tail->AppendBeforeBranch(ains); + if (s > 0) + ains->mDst.mRange.mMaxValue += s; + else + ains->mDst.mRange.mMinValue += s; + indexScale[ains->mDst.mTemp] = s; modified = true;