Fix single block loop optimization for function call in loop
This commit is contained in:
parent
0bd2ab9e3c
commit
4666e7a176
|
@ -13787,6 +13787,10 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
mFalseJump->mEntryRequiredRegs += CPU_REG_X;
|
mFalseJump->mEntryRequiredRegs += CPU_REG_X;
|
||||||
|
|
||||||
pb->mExitProvidedRegs += CPU_REG_X;
|
pb->mExitProvidedRegs += CPU_REG_X;
|
||||||
|
mExitProvidedRegs += CPU_REG_Y;
|
||||||
|
|
||||||
|
ns = mIns.Size();
|
||||||
|
|
||||||
mIns[ns - 3] = mIns[ns - 2];
|
mIns[ns - 3] = mIns[ns - 2];
|
||||||
mIns[ns - 2].mType = ASMIT_INX; mIns[ns - 2].mMode = ASMIM_IMPLIED;
|
mIns[ns - 2].mType = ASMIT_INX; mIns[ns - 2].mMode = ASMIM_IMPLIED;
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -13808,6 +13812,10 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
mFalseJump->mEntryRequiredRegs += CPU_REG_Y;
|
mFalseJump->mEntryRequiredRegs += CPU_REG_Y;
|
||||||
|
|
||||||
pb->mExitProvidedRegs += CPU_REG_Y;
|
pb->mExitProvidedRegs += CPU_REG_Y;
|
||||||
|
mExitProvidedRegs += CPU_REG_Y;
|
||||||
|
|
||||||
|
ns = mIns.Size();
|
||||||
|
|
||||||
mIns[ns - 3] = mIns[ns - 2];
|
mIns[ns - 3] = mIns[ns - 2];
|
||||||
mIns[ns - 2].mType = ASMIT_INY; mIns[ns - 2].mMode = ASMIM_IMPLIED;
|
mIns[ns - 2].mType = ASMIT_INY; mIns[ns - 2].mMode = ASMIM_IMPLIED;
|
||||||
changed = true;
|
changed = true;
|
||||||
|
|
Loading…
Reference in New Issue