Permalink
Browse files

Merge pull request #6829 from stenzek/jit-flush-constants

Jit64: Invalidate cached constant values w/o host register on flush
  • Loading branch information...
degasus committed May 12, 2018
2 parents 22ceecc + a446b09 commit 6707357512d3c9a4201fd1cc14259f9ea34ca625
Showing with 7 additions and 0 deletions.
  1. +7 −0 Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp
@@ -101,6 +101,13 @@ void RegCache::Flush(FlushMode mode, BitSet32 regsToFlush)
ASSERT_MSG(DYNA_REC, 0, "Jit64 - Flush unhandled case, reg %u PC: %08x", i, PC);
}
}
else if (m_regs[i].location.IsImm())
{
// We can have a cached value without a host register through speculative constants.
// It must be cleared when flushing, otherwise it may be out of sync with PPCSTATE,
// if PPCSTATE is modified externally (e.g. fallback to interpreter).
m_regs[i].location = GetDefaultLocation(i);
}
}
}

0 comments on commit 6707357

Please sign in to comment.