From e7ec859dfc679ece63b767d542d5e49a073108dc Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:18:01 +0200 Subject: [PATCH] Fix unused parameter optimization for deep call stacks --- oscar64/InterCode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 930f34f..6b88483 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -10065,7 +10065,7 @@ bool InterCodeBasicBlock::RemoveUnusedArgumentStoreInstructions(void) { mEntryRequiredArgs.Fill(); } - else if (ins->mCode == IC_STORE && ins->mSrc[1].mMemory == IM_FFRAME) + else if (ins->mCode == IC_STORE && ins->mSrc[1].mMemory == IM_FFRAME && ins->mSrc[1].mVarIndex + InterTypeSize[ins->mSrc[0].mType] < 64) { if (mEntryRequiredArgs.RangeClear(ins->mSrc[1].mVarIndex, InterTypeSize[ins->mSrc[0].mType])) { @@ -21917,7 +21917,7 @@ void InterCodeProcedure::Close(void) { GrowingTypeArray tstack(IT_NONE); - CheckFunc = !strcmp(mIdent->mString, "test"); + CheckFunc = !strcmp(mIdent->mString, "main"); CheckCase = false; mEntryBlock = mBlocks[0];