From f0c7291cd7bdbf41d8a64edb84d37f844624b044 Mon Sep 17 00:00:00 2001 From: zilmar Date: Sat, 29 Sep 2012 06:09:27 +1000 Subject: [PATCH] Make sure we are still doing a tlb miss when executing from a non valid tlb location (even if we have valid code there) --- .../Recompiler/Recompiler Class.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Source/Project64/N64 System/Recompiler/Recompiler Class.cpp b/Source/Project64/N64 System/Recompiler/Recompiler Class.cpp index 0fdbd911e..15bf991e8 100644 --- a/Source/Project64/N64 System/Recompiler/Recompiler Class.cpp +++ b/Source/Project64/N64 System/Recompiler/Recompiler Class.cpp @@ -83,17 +83,6 @@ void CRecompiler::RecompilerMain_VirtualTable ( void ) while(!Done) { - PCCompiledFunc_TABLE & table = FunctionTable()[PC >> 0xC]; - DWORD TableEntry = (PC & 0xFFF) >> 2; - if (table) - { - CCompiledFunc * info = table[TableEntry]; - if (info != NULL) - { - (info->Function())(); - continue; - } - } if (!_TransVaddr->ValidVaddr(PC)) { _Reg->DoTLBMiss(false,PC); @@ -105,6 +94,17 @@ void CRecompiler::RecompilerMain_VirtualTable ( void ) continue; } + PCCompiledFunc_TABLE & table = FunctionTable()[PC >> 0xC]; + DWORD TableEntry = (PC & 0xFFF) >> 2; + if (table) + { + CCompiledFunc * info = table[TableEntry]; + if (info != NULL) + { + (info->Function())(); + continue; + } + } CCompiledFunc * info = CompilerCode(); if (info == NULL || m_EndEmulation) {