Fix negative array access in native code path propagation
This commit is contained in:
parent
77010a0ab2
commit
8ee390a532
|
@ -14679,6 +14679,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
}
|
}
|
||||||
mIns.Remove(i + 1);
|
mIns.Remove(i + 1);
|
||||||
changed = true;
|
changed = true;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 1].mAddress] &&
|
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 1].mAddress] &&
|
||||||
!mTrueJump->mEntryRequiredRegs[mIns[i + 1].mAddress] &&
|
!mTrueJump->mEntryRequiredRegs[mIns[i + 1].mAddress] &&
|
||||||
|
@ -14691,6 +14692,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
}
|
}
|
||||||
mIns.Remove(i + 1);
|
mIns.Remove(i + 1);
|
||||||
changed = true;
|
changed = true;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14730,7 +14732,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
mIns.Remove(i);
|
mIns.Remove(i);
|
||||||
}
|
}
|
||||||
changed = true;
|
changed = true;
|
||||||
i--;
|
continue;
|
||||||
}
|
}
|
||||||
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && mFalseJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && mFalseJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
||||||
!mTrueJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && !mTrueJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
!mTrueJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && !mTrueJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
||||||
|
@ -14749,7 +14751,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
mIns.Remove(i);
|
mIns.Remove(i);
|
||||||
}
|
}
|
||||||
changed = true;
|
changed = true;
|
||||||
i--;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14786,7 +14788,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
mIns.Remove(i);
|
mIns.Remove(i);
|
||||||
}
|
}
|
||||||
changed = true;
|
changed = true;
|
||||||
i--;
|
continue;
|
||||||
}
|
}
|
||||||
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && mFalseJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
else if (mFalseJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && mFalseJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
||||||
!mTrueJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && !mTrueJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
!mTrueJump->mEntryRequiredRegs[mIns[i + 3].mAddress] && !mTrueJump->mEntryRequiredRegs[mIns[i + 6].mAddress] &&
|
||||||
|
@ -14803,7 +14805,7 @@ bool NativeCodeBasicBlock::PropagateSinglePath(void)
|
||||||
mIns.Remove(i);
|
mIns.Remove(i);
|
||||||
}
|
}
|
||||||
changed = true;
|
changed = true;
|
||||||
i--;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue