From c0498ca8314e9c7cce319eae4c006a7f459e3851 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 16 Oct 2011 16:26:43 +1100 Subject: [PATCH] Synchronised the JIT cache with the ICache by invalidating the JIT block when the ICache is updated. This fixes Mario & Sonic at the Olympic Winter Games. Thanks to DimitriPilot3 for the tip. Fixes issue 1610. --- Source/Core/Core/Src/PowerPC/PPCCache.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/Core/Src/PowerPC/PPCCache.cpp b/Source/Core/Core/Src/PowerPC/PPCCache.cpp index 33ecc0ee88..540d4940f7 100644 --- a/Source/Core/Core/Src/PowerPC/PPCCache.cpp +++ b/Source/Core/Core/Src/PowerPC/PPCCache.cpp @@ -134,6 +134,8 @@ namespace PowerPC #endif if (t == 0xff) // load to the cache { + if (jit) + jit->GetBlockCache()->InvalidateICache(addr); if (HID0.ILOCK) // instruction cache is locked return Memory::ReadUnchecked_U32(addr); // select a way