From 020ab117a49c480c2b1e36564c0311856da8a19d Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:37:47 +0100 Subject: [PATCH] Fix value copy crossing function call --- oscar64/NativeCodeGenerator.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/oscar64/NativeCodeGenerator.cpp b/oscar64/NativeCodeGenerator.cpp index fd639d8..9b90758 100644 --- a/oscar64/NativeCodeGenerator.cpp +++ b/oscar64/NativeCodeGenerator.cpp @@ -28385,6 +28385,8 @@ bool NativeCodeBasicBlock::MoveLoadStoreOutOfXYRangeUp(int at) return false; if (mIns[at + 2].mMode == ASMIM_ZERO_PAGE && mIns[j].ChangesZeroPage(mIns[at + 2].mAddress)) return false; + if (mIns[j].mType == ASMIT_JSR) + return false; if (mIns[j].mType == ASMIT_LDA) { @@ -45696,7 +45698,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc) { mInterProc = proc; - CheckFunc = !strcmp(mInterProc->mIdent->mString, "KeyExpansion"); + CheckFunc = !strcmp(mInterProc->mIdent->mString, "vdcwin_get_rect"); int nblocks = proc->mBlocks.Size(); tblocks = new NativeCodeBasicBlock * [nblocks]; @@ -46518,6 +46520,7 @@ void NativeCodeProcedure::Optimize(void) } #endif + if (step == 5) { ResetVisited(); @@ -47206,7 +47209,6 @@ void NativeCodeProcedure::Optimize(void) else cnt++; - } while (changed); #if 1