From 6cf8466dfd081ca602321af0e5cd0026af52be77 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Tue, 12 Dec 2023 22:39:22 +0100 Subject: [PATCH] Fix overeager lda/sta join of tail blocks --- oscar64/NativeCodeGenerator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/oscar64/NativeCodeGenerator.cpp b/oscar64/NativeCodeGenerator.cpp index 8db8fba..7290d5a 100644 --- a/oscar64/NativeCodeGenerator.cpp +++ b/oscar64/NativeCodeGenerator.cpp @@ -20537,7 +20537,7 @@ bool NativeCodeBasicBlock::CanForwardLoadStore(const NativeCodeInstruction& lins } if (mIns[i].mType == ASMIT_JSR) return false; - if (sins.MayBeChangedOnAddress(mIns[i])) + if (sins.MayBeChangedOnAddress(mIns[i]) || mIns[i].MayBeChangedOnAddress(sins)) return false; i--; } @@ -44528,7 +44528,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc) { mInterProc = proc; - CheckFunc = !strcmp(mInterProc->mIdent->mString, "main"); + CheckFunc = !strcmp(mInterProc->mIdent->mString, "Enemy::StepTurn"); int nblocks = proc->mBlocks.Size(); tblocks = new NativeCodeBasicBlock * [nblocks]; @@ -45490,6 +45490,7 @@ void NativeCodeProcedure::Optimize(void) #endif + #if _DEBUG ResetVisited(); mEntryBlock->CheckBlocks(true);