More inter code value forwarding
This commit is contained in:
parent
2b7c7300d7
commit
d4a9308627
|
@ -7096,6 +7096,7 @@ void InterCodeProcedure::Close(void)
|
|||
|
||||
|
||||
bool eliminated;
|
||||
int retries = 2;
|
||||
//
|
||||
// Now forward constant values
|
||||
//
|
||||
|
@ -7119,7 +7120,12 @@ void InterCodeProcedure::Close(void)
|
|||
mEntryBlock->CollectEntries();
|
||||
*/
|
||||
}
|
||||
} while (eliminated);
|
||||
|
||||
mTemporaries.SetSize(numTemps, true);
|
||||
TempForwarding();
|
||||
retries--;
|
||||
|
||||
} while (eliminated || retries > 0);
|
||||
|
||||
|
||||
DisassembleDebug("value forwarding");
|
||||
|
|
|
@ -9355,6 +9355,12 @@ bool NativeCodeBasicBlock::PatchDirectAddressSumY(int at, int reg, int apos, int
|
|||
if (last == mIns.Size())
|
||||
return false;
|
||||
|
||||
if (mIns[last].mLive & LIVE_CPU_REG_Y)
|
||||
{
|
||||
mIns.Insert(last + 1, NativeCodeInstruction(ASMIT_LDY, ASMIM_IMMEDIATE, yindex));
|
||||
mIns[last + 1].mLive |= CPU_REG_Y;
|
||||
}
|
||||
|
||||
mIns[apos].mType = ASMIT_TAY;
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue