Fix assert in samples
This commit is contained in:
parent
fefa462730
commit
2cdc95ba05
|
@ -23378,6 +23378,7 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
mTrueJump->mIns.Insert(0, ins);
|
mTrueJump->mIns.Insert(0, ins);
|
||||||
mTrueJump->mIns[0].mLive |= LIVE_CPU_REG_C | mIns[ns - 1].mLive;
|
mTrueJump->mIns[0].mLive |= LIVE_CPU_REG_C | mIns[ns - 1].mLive;
|
||||||
mIns.Remove(ns - 2);
|
mIns.Remove(ns - 2);
|
||||||
|
mExitRequiredRegs += CPU_REG_A;
|
||||||
mTrueJump->mEntryRequiredRegs += CPU_REG_A;
|
mTrueJump->mEntryRequiredRegs += CPU_REG_A;
|
||||||
mTrueJump->CheckLive();
|
mTrueJump->CheckLive();
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -23387,6 +23388,7 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
mFalseJump->mIns.Insert(0, ins);
|
mFalseJump->mIns.Insert(0, ins);
|
||||||
mFalseJump->mIns[0].mLive |= LIVE_CPU_REG_C | mIns[ns - 1].mLive;
|
mFalseJump->mIns[0].mLive |= LIVE_CPU_REG_C | mIns[ns - 1].mLive;
|
||||||
mIns.Remove(ns - 2);
|
mIns.Remove(ns - 2);
|
||||||
|
mExitRequiredRegs += CPU_REG_A;
|
||||||
mFalseJump->mEntryRequiredRegs += CPU_REG_A;
|
mFalseJump->mEntryRequiredRegs += CPU_REG_A;
|
||||||
mFalseJump->CheckLive();
|
mFalseJump->CheckLive();
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -23403,6 +23405,7 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
if (mTrueJump->mEntryRequiredRegs[CPU_REG_A])
|
if (mTrueJump->mEntryRequiredRegs[CPU_REG_A])
|
||||||
mTrueJump->mIns[0].mLive |= LIVE_CPU_REG_A;
|
mTrueJump->mIns[0].mLive |= LIVE_CPU_REG_A;
|
||||||
mIns.Remove(ns - 2);
|
mIns.Remove(ns - 2);
|
||||||
|
mExitRequiredRegs += CPU_REG_X;
|
||||||
mTrueJump->mEntryRequiredRegs += CPU_REG_X;
|
mTrueJump->mEntryRequiredRegs += CPU_REG_X;
|
||||||
mTrueJump->CheckLive();
|
mTrueJump->CheckLive();
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -23416,6 +23419,7 @@ bool NativeCodeBasicBlock::JoinTailCodeSequences(NativeCodeProcedure* proc, bool
|
||||||
if (mFalseJump->mEntryRequiredRegs[CPU_REG_A])
|
if (mFalseJump->mEntryRequiredRegs[CPU_REG_A])
|
||||||
mFalseJump->mIns[0].mLive |= LIVE_CPU_REG_A;
|
mFalseJump->mIns[0].mLive |= LIVE_CPU_REG_A;
|
||||||
mIns.Remove(ns - 2);
|
mIns.Remove(ns - 2);
|
||||||
|
mExitRequiredRegs += CPU_REG_X;
|
||||||
mFalseJump->mEntryRequiredRegs += CPU_REG_X;
|
mFalseJump->mEntryRequiredRegs += CPU_REG_X;
|
||||||
mFalseJump->CheckLive();
|
mFalseJump->CheckLive();
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -36396,7 +36400,7 @@ bool NativeCodeBasicBlock::OptimizeSingleEntryLoopInvariant(NativeCodeProcedure*
|
||||||
int si = 0;
|
int si = 0;
|
||||||
while (si < mIns.Size() && !mIns[si].ChangesXReg())
|
while (si < mIns.Size() && !mIns[si].ChangesXReg())
|
||||||
si++;
|
si++;
|
||||||
if (si >= 0 && mIns[si].mType == ASMIT_LDX && mIns[si].SameEffectiveAddress(tail->mIns[ei]))
|
if (si < mIns.Size() && mIns[si].mType == ASMIT_LDX && mIns[si].SameEffectiveAddress(tail->mIns[ei]))
|
||||||
{
|
{
|
||||||
prev->mIns.Push(mIns[si]);
|
prev->mIns.Push(mIns[si]);
|
||||||
mIns.Remove(si);
|
mIns.Remove(si);
|
||||||
|
|
Loading…
Reference in New Issue