From ba05ec743d0bc83eb8a3b7756c225415cf4184a0 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sun, 11 May 2025 17:31:01 +0200 Subject: [PATCH] Fix high byte address forwarding --- oscar64/NativeCodeGenerator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oscar64/NativeCodeGenerator.cpp b/oscar64/NativeCodeGenerator.cpp index 1e52bd6..d028115 100644 --- a/oscar64/NativeCodeGenerator.cpp +++ b/oscar64/NativeCodeGenerator.cpp @@ -5,7 +5,7 @@ #define JUMP_TO_BRANCH 1 #define CHECK_NULLPTR 0 #define REYCLE_JUMPS 1 -#define DISASSEMBLE_OPT 0 +#define DISASSEMBLE_OPT 1 static bool CheckFunc; static bool CheckCase; @@ -37490,7 +37490,7 @@ bool NativeCodeBasicBlock::ValueForwarding(NativeCodeProcedure* proc, const Nati mIns.Insert(i, NativeCodeInstruction(mIns[i].mIns, ASMIT_LDY, ASMIM_ZERO_PAGE, reg)); mIns[i + 1].mMode = ASMIM_ABSOLUTE_Y; mIns[i + 1].mLinkerObject = mNDataSet.mRegs[reg + 1].mLinkerObject; - mIns[i + 1].mAddress = mNDataSet.mRegs[reg + 1].mValue + mNDataSet.mRegs[CPU_REG_Y].mValue; + mIns[i + 1].mAddress = (mNDataSet.mRegs[reg + 1].mValue & 0xff00) + mNDataSet.mRegs[CPU_REG_Y].mValue; mIns[i + 1].mFlags &= ~NCIF_LOWER; mIns.Insert(i + 2, NativeCodeInstruction(mIns[i].mIns, ASMIT_LDY, ASMIM_IMMEDIATE, mNDataSet.mRegs[CPU_REG_Y].mValue)); mIns.Insert(i + 3, NativeCodeInstruction(mIns[i].mIns, ASMIT_ORA, ASMIM_IMMEDIATE, 0));