Value forwarding abs,x and abs,y

This commit is contained in:
drmortalwombat 2023-07-24 22:19:35 +02:00
parent 6cfa24b8ad
commit df28d2f83f

View File

@ -3928,6 +3928,12 @@ bool NativeCodeInstruction::ValueForwarding(NativeRegisterDataSet& data, AsmInsT
mMode = ASMIM_IMPLIED;
changed = true;
}
else if (data.mRegs[CPU_REG_A].mMode == NRDM_ABSOLUTE_X && data.mRegs[CPU_REG_A].mLinkerObject == mLinkerObject && data.mRegs[CPU_REG_A].mValue == mAddress)
{
mType = ASMIT_TAY;
mMode = ASMIM_IMPLIED;
changed = true;
}
else
{
data.mRegs[CPU_REG_Y].mMode = NRDM_ABSOLUTE_X;
@ -3985,6 +3991,12 @@ bool NativeCodeInstruction::ValueForwarding(NativeRegisterDataSet& data, AsmInsT
mMode = ASMIM_IMPLIED;
changed = true;
}
else if (data.mRegs[CPU_REG_A].mMode == NRDM_ABSOLUTE_Y && data.mRegs[CPU_REG_A].mLinkerObject == mLinkerObject && data.mRegs[CPU_REG_A].mValue == mAddress)
{
mType = ASMIT_TAX;
mMode = ASMIM_IMPLIED;
changed = true;
}
else
{
data.mRegs[CPU_REG_X].mMode = NRDM_ABSOLUTE_Y;