Fix overeager lda/sta join of tail blocks
This commit is contained in:
parent
6bbf325720
commit
6cf8466dfd
|
@ -20537,7 +20537,7 @@ bool NativeCodeBasicBlock::CanForwardLoadStore(const NativeCodeInstruction& lins
|
||||||
}
|
}
|
||||||
if (mIns[i].mType == ASMIT_JSR)
|
if (mIns[i].mType == ASMIT_JSR)
|
||||||
return false;
|
return false;
|
||||||
if (sins.MayBeChangedOnAddress(mIns[i]))
|
if (sins.MayBeChangedOnAddress(mIns[i]) || mIns[i].MayBeChangedOnAddress(sins))
|
||||||
return false;
|
return false;
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
|
@ -44528,7 +44528,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc)
|
||||||
{
|
{
|
||||||
mInterProc = proc;
|
mInterProc = proc;
|
||||||
|
|
||||||
CheckFunc = !strcmp(mInterProc->mIdent->mString, "main");
|
CheckFunc = !strcmp(mInterProc->mIdent->mString, "Enemy::StepTurn");
|
||||||
|
|
||||||
int nblocks = proc->mBlocks.Size();
|
int nblocks = proc->mBlocks.Size();
|
||||||
tblocks = new NativeCodeBasicBlock * [nblocks];
|
tblocks = new NativeCodeBasicBlock * [nblocks];
|
||||||
|
@ -45490,6 +45490,7 @@ void NativeCodeProcedure::Optimize(void)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if _DEBUG
|
#if _DEBUG
|
||||||
ResetVisited();
|
ResetVisited();
|
||||||
mEntryBlock->CheckBlocks(true);
|
mEntryBlock->CheckBlocks(true);
|
||||||
|
|
Loading…
Reference in New Issue