From 67e30719200932e80bedda2c3d4561f083fcaa88 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Tue, 12 Jul 2022 17:05:23 +0200 Subject: [PATCH] Fix cascaded indexing with byte postincrement --- oscar64/InterCode.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index f06719b..927ccff 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -7187,13 +7187,13 @@ bool InterCodeBasicBlock::SimplifyIntegerNumeric(const GrowingInstructionPtrArra if (ains->mCode == IC_BINARY_OPERATOR && ains->mOperator == IA_ADD && ains->mSrc[0].mTemp < 0) { - if (ains->mSrc[0].mType == IT_INT16) + if (ains->mSrc[1].mType == IT_INT16) { ins->mSrc[0] = ains->mSrc[1]; ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst; changed = true; } - else if (ains->mSrc[0].mType == IT_INT8) + else if (ains->mSrc[1].mType == IT_INT8) { if (spareTemps + 2 >= ltvalue.Size()) return true; @@ -7207,7 +7207,7 @@ bool InterCodeBasicBlock::SimplifyIntegerNumeric(const GrowingInstructionPtrArra nins->mDst.mRange = pins->mDst.mRange; mInstructions.Insert(i, nins); - ins->mSrc[0] = ains->mSrc[1]; + ins->mSrc[0] = nins->mDst; ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst; changed = true; }