Fix volatile loads with unused result

This commit is contained in:
drmortalwombat 2022-03-26 12:30:48 +01:00
parent fc5c9f137a
commit 68e048b945
2 changed files with 7 additions and 1 deletions

View File

@ -2397,7 +2397,10 @@ bool InterInstruction::RemoveUnusedResultInstructions(InterInstruction* pre, Num
{
if (!requiredTemps[mDst.mTemp] && mDst.mTemp >= 0)
{
if (!HasSideEffect(mCode))
if (mCode == IC_LOAD && mVolatile)
{
}
else if (!HasSideEffect(mCode))
{
mCode = IC_NONE;
mDst.mTemp = -1;

View File

@ -11996,6 +11996,9 @@ bool NativeCodeBasicBlock::MoveAbsoluteLoadStoreUp(int at)
if (mIns[at + 1].mMode == ASMIM_ABSOLUTE_Y && mIns[j].ChangesYReg())
return false;
if (mIns[j].mType == ASMIT_JSR)
return false;
j--;
}