From fa2ee1f4a0bf7e6ba4432e8e4bd1e726bec434d5 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Wed, 20 Jun 2012 18:33:23 +0200 Subject: [PATCH] Only call CheckExceptions in dcbz in interpreter mode, use FL_ENDBLOCK for Jit64. Now RS3 demo disc does ingame with Jit and block_size = 1 --- .../Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp | 3 ++- .../Core/Core/Src/PowerPC/Interpreter/Interpreter_Tables.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp index f09575e066..bc5cfc10e6 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp @@ -409,7 +409,8 @@ void Interpreter::dcbz(UGeckoInstruction _inst) // HACK but works... we think if (HID2.WPE || !HID0.DCFA) Memory::Memset(Helper_Get_EA_X(_inst) & (~31), 0, 32); - PowerPC::CheckExceptions(); + if (!jit) + PowerPC::CheckExceptions(); } // eciwx/ecowx technically should access the specified device diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Tables.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Tables.cpp index 13b1cf46c1..33540bfb64 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Tables.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Tables.cpp @@ -203,7 +203,7 @@ static GekkoOPTemplate table31[] = {278, Interpreter::dcbt, {"dcbt", OPTYPE_DCACHE, 0, 1, 0, 0, 0}}, {470, Interpreter::dcbi, {"dcbi", OPTYPE_DCACHE, 0, 4, 0, 0, 0}}, {758, Interpreter::dcba, {"dcba", OPTYPE_DCACHE, 0, 4, 0, 0, 0}}, - {1014, Interpreter::dcbz, {"dcbz", OPTYPE_DCACHE, 0, 4, 0, 0, 0}}, + {1014, Interpreter::dcbz, {"dcbz", OPTYPE_DCACHE, FL_LOADSTORE, 4, 0, 0, 0}}, //load word {23, Interpreter::lwzx, {"lwzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B | FL_LOADSTORE, 0, 0, 0, 0}},