From 976703f71372ead4a48a0422d0313f91abf68950 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Wed, 1 May 2024 14:08:42 +0200 Subject: [PATCH] Fix O2 parameter forwarding optimization --- oscar64/InterCodeGenerator.cpp | 5 ++++- oscar64/NativeCodeGenerator.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/oscar64/InterCodeGenerator.cpp b/oscar64/InterCodeGenerator.cpp index 13ac924..fb821fd 100644 --- a/oscar64/InterCodeGenerator.cpp +++ b/oscar64/InterCodeGenerator.cpp @@ -5408,7 +5408,7 @@ InterCodeProcedure* InterCodeGenerator::TranslateProcedure(InterCodeModule * mod proc->mLinkerObject->mFullIdent = dec->FullIdent(); #if 0 - if (proc->mIdent && !strcmp(proc->mIdent->mString, "addGameObjectCircle")) + if (proc->mIdent && !strcmp(proc->mIdent->mString, "zombies_splash")) exp->Dump(0); #endif #if 0 @@ -5484,7 +5484,10 @@ InterCodeProcedure* InterCodeGenerator::TranslateProcedure(InterCodeModule * mod if (i < dec->mLinkerObject->mNumTemporaries) { if (dec->mLinkerObject->mTemporaries[i] > start) + { + dec->mLinkerObject->mTempSizes[i] += dec->mLinkerObject->mTemporaries[i] - start; dec->mLinkerObject->mTemporaries[i] = start; + } if (dec->mLinkerObject->mTemporaries[i] + dec->mLinkerObject->mTempSizes[i] < end) dec->mLinkerObject->mTempSizes[i] = end - dec->mLinkerObject->mTemporaries[i]; } diff --git a/oscar64/NativeCodeGenerator.cpp b/oscar64/NativeCodeGenerator.cpp index 2e3cb36..9e2916f 100644 --- a/oscar64/NativeCodeGenerator.cpp +++ b/oscar64/NativeCodeGenerator.cpp @@ -47391,7 +47391,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc) { mInterProc = proc; - CheckFunc = !strcmp(mInterProc->mIdent->mString, "plant_draw_field"); + CheckFunc = !strcmp(mInterProc->mIdent->mString, "plants_iterate"); int nblocks = proc->mBlocks.Size(); tblocks = new NativeCodeBasicBlock * [nblocks];