Fix O2 parameter forwarding optimization

This commit is contained in:
drmortalwombat 2024-05-01 14:08:42 +02:00
parent dc5afa6e79
commit 976703f713
2 changed files with 5 additions and 2 deletions

View File

@ -5408,7 +5408,7 @@ InterCodeProcedure* InterCodeGenerator::TranslateProcedure(InterCodeModule * mod
proc->mLinkerObject->mFullIdent = dec->FullIdent(); proc->mLinkerObject->mFullIdent = dec->FullIdent();
#if 0 #if 0
if (proc->mIdent && !strcmp(proc->mIdent->mString, "addGameObjectCircle")) if (proc->mIdent && !strcmp(proc->mIdent->mString, "zombies_splash"))
exp->Dump(0); exp->Dump(0);
#endif #endif
#if 0 #if 0
@ -5484,7 +5484,10 @@ InterCodeProcedure* InterCodeGenerator::TranslateProcedure(InterCodeModule * mod
if (i < dec->mLinkerObject->mNumTemporaries) if (i < dec->mLinkerObject->mNumTemporaries)
{ {
if (dec->mLinkerObject->mTemporaries[i] > start) if (dec->mLinkerObject->mTemporaries[i] > start)
{
dec->mLinkerObject->mTempSizes[i] += dec->mLinkerObject->mTemporaries[i] - start;
dec->mLinkerObject->mTemporaries[i] = start; dec->mLinkerObject->mTemporaries[i] = start;
}
if (dec->mLinkerObject->mTemporaries[i] + dec->mLinkerObject->mTempSizes[i] < end) if (dec->mLinkerObject->mTemporaries[i] + dec->mLinkerObject->mTempSizes[i] < end)
dec->mLinkerObject->mTempSizes[i] = end - dec->mLinkerObject->mTemporaries[i]; dec->mLinkerObject->mTempSizes[i] = end - dec->mLinkerObject->mTemporaries[i];
} }

View File

@ -47391,7 +47391,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc)
{ {
mInterProc = proc; mInterProc = proc;
CheckFunc = !strcmp(mInterProc->mIdent->mString, "plant_draw_field"); CheckFunc = !strcmp(mInterProc->mIdent->mString, "plants_iterate");
int nblocks = proc->mBlocks.Size(); int nblocks = proc->mBlocks.Size();
tblocks = new NativeCodeBasicBlock * [nblocks]; tblocks = new NativeCodeBasicBlock * [nblocks];