Fix cascaded indexing with byte postincrement
This commit is contained in:
parent
4666e7a176
commit
67e3071920
|
@ -7187,13 +7187,13 @@ bool InterCodeBasicBlock::SimplifyIntegerNumeric(const GrowingInstructionPtrArra
|
||||||
|
|
||||||
if (ains->mCode == IC_BINARY_OPERATOR && ains->mOperator == IA_ADD && ains->mSrc[0].mTemp < 0)
|
if (ains->mCode == IC_BINARY_OPERATOR && ains->mOperator == IA_ADD && ains->mSrc[0].mTemp < 0)
|
||||||
{
|
{
|
||||||
if (ains->mSrc[0].mType == IT_INT16)
|
if (ains->mSrc[1].mType == IT_INT16)
|
||||||
{
|
{
|
||||||
ins->mSrc[0] = ains->mSrc[1];
|
ins->mSrc[0] = ains->mSrc[1];
|
||||||
ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst;
|
ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
else if (ains->mSrc[0].mType == IT_INT8)
|
else if (ains->mSrc[1].mType == IT_INT8)
|
||||||
{
|
{
|
||||||
if (spareTemps + 2 >= ltvalue.Size())
|
if (spareTemps + 2 >= ltvalue.Size())
|
||||||
return true;
|
return true;
|
||||||
|
@ -7207,7 +7207,7 @@ bool InterCodeBasicBlock::SimplifyIntegerNumeric(const GrowingInstructionPtrArra
|
||||||
nins->mDst.mRange = pins->mDst.mRange;
|
nins->mDst.mRange = pins->mDst.mRange;
|
||||||
mInstructions.Insert(i, nins);
|
mInstructions.Insert(i, nins);
|
||||||
|
|
||||||
ins->mSrc[0] = ains->mSrc[1];
|
ins->mSrc[0] = nins->mDst;
|
||||||
ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst;
|
ins->mSrc[1].mIntConst += ains->mSrc[0].mIntConst;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue