CPU/Recompiler: Only truncate block for future writes

If we overwrite an instruction that has already executed, it
should invalidate the block next time.
This commit is contained in:
Stenzek 2024-12-12 16:23:30 +10:00
parent e507fdcb1f
commit cdcf05a878
No known key found for this signature in database
1 changed files with 1 additions and 1 deletions

View File

@ -1707,7 +1707,7 @@ void CPU::Recompiler::Recompiler::CompileLoadStoreTemplate(
{
// Get rid of physical aliases.
const u32 phys_spec_addr = VirtualAddressToPhysical(spec_addr.value());
if (phys_spec_addr >= VirtualAddressToPhysical(m_block->pc) &&
if (phys_spec_addr >= VirtualAddressToPhysical(m_compiler_pc) &&
phys_spec_addr < VirtualAddressToPhysical(m_block->pc + (m_block->size * sizeof(Instruction))))
{
WARNING_LOG("Instruction {:08X} speculatively writes to {:08X} inside block {:08X}-{:08X}. Truncating block.",