From db386a5958d0048bb3ebe2b8fc7bdcec6a967d84 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Thu, 31 Oct 2024 07:13:30 +0100 Subject: [PATCH] Fix multi indirection lea propagation --- oscar64/InterCode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index a92b4fc..5cc7848 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -6507,7 +6507,7 @@ void InterCodeBasicBlock::CheckValueUsage(InterInstruction * ins, const GrowingI else if (ins->mSrc[1].mTemp >= 0 && fsingle[ins->mSrc[1].mTemp]) { InterInstruction* lins = tvalue[ins->mSrc[1].mTemp]; - while (lins && lins->mCode == IC_LEA && lins->mSrc[1].mTemp >= 0 && fsingle[ins->mSrc[1].mTemp]) + while (lins && lins->mCode == IC_LEA && lins->mSrc[1].mTemp >= 0 && fsingle[lins->mSrc[1].mTemp]) lins = tvalue[lins->mSrc[1].mTemp]; if (lins && lins->mSrc[1].mTemp < 0 && (lins->mSrc[1].mMemory == IM_ABSOLUTE || lins->mSrc[1].mMemory == IM_GLOBAL)) { @@ -22913,7 +22913,7 @@ void InterCodeProcedure::Close(void) { GrowingTypeArray tstack(IT_NONE); - CheckFunc = !strcmp(mIdent->mString, "main"); + CheckFunc = !strcmp(mIdent->mString, "__computeCharsetSrc__"); CheckCase = false; mEntryBlock = mBlocks[0];