Fix short lea coalescing with negative offsets

This commit is contained in:
drmortalwombat 2024-11-03 10:14:18 +01:00
parent bb01d1024a
commit 51c38a4723

View File

@ -19220,8 +19220,10 @@ bool InterCodeBasicBlock::ShortLeaMerge(int& spareTemps)
if (found) if (found)
{ {
mInstructions.Insert(0, iins[0]->Clone()); InterInstruction* lins = iins[0]->Clone();
iins[0]->mSrc[1].mIntConst = minint; lins->mSrc[0].mRange.Reset();
lins->mSrc[1].mIntConst = minint;
mInstructions.Insert(0, lins);
if (iins[0]->mSrc[0].mTemp < 0) if (iins[0]->mSrc[0].mTemp < 0)
{ {
@ -22913,7 +22915,7 @@ void InterCodeProcedure::Close(void)
{ {
GrowingTypeArray tstack(IT_NONE); GrowingTypeArray tstack(IT_NONE);
CheckFunc = !strcmp(mIdent->mString, "main"); CheckFunc = !strcmp(mIdent->mString, "game_walking");
CheckCase = false; CheckCase = false;
mEntryBlock = mBlocks[0]; mEntryBlock = mBlocks[0];