From 3d345450f54e2216443025e92d6438abd9ed6dd7 Mon Sep 17 00:00:00 2001 From: John Peterson Date: Sun, 12 Oct 2008 13:59:26 +0000 Subject: [PATCH] Added option to compile without the JIT off options. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@843 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/PowerPC/Jit64/Jit.h | 8 ++++ .../Core/Src/PowerPC/Jit64/Jit_Integer.cpp | 48 +++++++++++++++++++ .../Core/Src/PowerPC/Jit64/Jit_LoadStore.cpp | 24 +++++++--- .../PowerPC/Jit64/Jit_LoadStoreFloating.cpp | 30 ++++++++---- .../Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp | 12 +++-- .../Core/Src/PowerPC/Jit64/Jit_Paired.cpp | 16 +++++++ .../Src/PowerPC/Jit64/Jit_SystemRegisters.cpp | 10 +++- Source/Core/DebuggerWX/Src/CodeWindow.cpp | 2 + 8 files changed, 128 insertions(+), 22 deletions(-) diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit.h b/Source/Core/Core/Src/PowerPC/Jit64/Jit.h index fda7686941..e2cb716055 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit.h +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit.h @@ -26,6 +26,14 @@ #include "JitCache.h" #include "x64Emitter.h" + +// ======================================================================================= +// Enable or disable JIT off options. All the if() checks in the JIT functions may result in a +// speed drop. However it should barely be noticable as the code is recompiled rarely. +// -------------- +#define JIT_OFF_OPTIONS + + namespace Jit64 { struct JitStats diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp index dc688a74fd..c49966ce15 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp @@ -93,8 +93,10 @@ namespace Jit64 void reg_imm(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int d = inst.RD, a = inst.RA, s = inst.RS; switch (inst.OPCD) @@ -122,8 +124,10 @@ namespace Jit64 // unsigned void cmpli(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; u32 uimm = inst.UIMM; @@ -152,8 +156,10 @@ namespace Jit64 // signed void cmpi(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; s32 simm = (s32)(s16)inst.UIMM; @@ -182,8 +188,10 @@ namespace Jit64 // signed void cmp(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int b = inst.RB; @@ -214,8 +222,10 @@ namespace Jit64 // unsigned void cmpl(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int b = inst.RB; @@ -245,8 +255,10 @@ namespace Jit64 void orx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int s = inst.RS; @@ -282,8 +294,10 @@ namespace Jit64 void andx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, s = inst.RS, b = inst.RB; if (a != s && a != b) { @@ -305,8 +319,10 @@ namespace Jit64 void extsbx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, s = inst.RS; @@ -322,8 +338,10 @@ namespace Jit64 void extshx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, s = inst.RS; gpr.LoadToX64(a, a == s, true); @@ -337,8 +355,10 @@ namespace Jit64 void subfic(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, d = inst.RD; gpr.FlushLockX(ECX); @@ -373,8 +393,10 @@ namespace Jit64 void subfx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; gpr.Lock(a, b, d); @@ -396,8 +418,10 @@ namespace Jit64 void mulli(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, d = inst.RD; gpr.FlushLockX(EDX); @@ -417,8 +441,10 @@ namespace Jit64 void mullwx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; gpr.FlushLockX(EDX); @@ -442,8 +468,10 @@ namespace Jit64 void mulhwux(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; gpr.FlushLockX(EDX); @@ -505,8 +533,10 @@ namespace Jit64 void addx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; _assert_msg_(DYNA_REC, !inst.OE, "Add - OE enabled :("); @@ -558,8 +588,10 @@ namespace Jit64 // This can be optimized void addex(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; gpr.FlushLockX(ECX); @@ -584,8 +616,10 @@ namespace Jit64 void rlwinmx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int s = inst.RS; @@ -647,8 +681,10 @@ namespace Jit64 void rlwimix(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int s = inst.RS; @@ -681,8 +717,10 @@ namespace Jit64 void rlwnmx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, s = inst.RS; if (gpr.R(a).IsImm()) @@ -711,8 +749,10 @@ namespace Jit64 void negx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int d = inst.RD; @@ -731,8 +771,10 @@ namespace Jit64 void srwx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int b = inst.RB; @@ -760,8 +802,10 @@ namespace Jit64 void slwx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int b = inst.RB; @@ -789,8 +833,10 @@ namespace Jit64 void srawix(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int s = inst.RS; @@ -834,8 +880,10 @@ namespace Jit64 // count leading zeroes void cntlzwx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITIntegerOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA; int s = inst.RS; diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStore.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStore.cpp index cd4138d20c..6619cb3cd0 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStore.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStore.cpp @@ -54,8 +54,10 @@ namespace Jit64 } void lbzx(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS //if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - // {Default(inst); return;} // turn off from debugger + // {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int a = inst.RA, b = inst.RB, d = inst.RD; @@ -77,8 +79,10 @@ namespace Jit64 void lXz(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + //if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + // {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int d = inst.RD; @@ -162,8 +166,10 @@ namespace Jit64 void lha(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + //if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + // {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int d = inst.RD; @@ -184,8 +190,10 @@ namespace Jit64 // Zero cache line. void dcbz(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS //if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - // {Default(inst); return;} // turn off from debugger + // {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; MOV(32, R(EAX), gpr.R(inst.RB)); @@ -205,8 +213,10 @@ namespace Jit64 void stX(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS //if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - // {Default(inst); return;} // turn off from debugger + // {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int s = inst.RS; diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStoreFloating.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStoreFloating.cpp index 045bca609c..342d2b4dab 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStoreFloating.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStoreFloating.cpp @@ -66,8 +66,10 @@ u32 GC_ALIGNED16(temp32); void lfs(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; int d = inst.RD; int a = inst.RA; @@ -102,8 +104,10 @@ void lfs(UGeckoInstruction inst) void lfd(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (!cpu_info.bSSSE3) { DISABLE_32BIT; @@ -148,8 +152,10 @@ void lfd(UGeckoInstruction inst) void stfd(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (!cpu_info.bSSSE3) { @@ -193,8 +199,10 @@ void stfd(UGeckoInstruction inst) void stfs(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; bool update = inst.OPCD & 1; int s = inst.RS; @@ -258,8 +266,10 @@ void stfsx(UGeckoInstruction inst) void lfsx(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; fpr.Lock(inst.RS); fpr.LoadToX64(inst.RS, false, true); diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp index 11238b59bb..1710317756 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp @@ -106,8 +106,10 @@ const double GC_ALIGNED16(m_dequantizeTableD[]) = // We will have to break block after quantizers are written to. void psq_st(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; js.block_flags |= BLOCK_USE_GQR0 << inst.I; @@ -285,8 +287,10 @@ const u8 GC_ALIGNED16(pbswapShuffleNoop[16]) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 void psq_l(UGeckoInstruction inst) { - if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) - {Default(inst); return;} // turn off from debugger +#ifdef JIT_OFF_OPTIONS + if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITLoadStoreOff) + {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; js.block_flags |= BLOCK_USE_GQR0 << inst.I; diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_Paired.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_Paired.cpp index 4bb41de08a..c3a78922d6 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_Paired.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_Paired.cpp @@ -54,8 +54,10 @@ namespace Jit64 void ps_mr(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -70,8 +72,10 @@ namespace Jit64 void ps_sel(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; Default(inst); return; @@ -103,8 +107,10 @@ namespace Jit64 void ps_sign(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -141,8 +147,10 @@ namespace Jit64 void ps_rsqrte(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -214,8 +222,10 @@ namespace Jit64 void ps_arith(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -240,8 +250,10 @@ namespace Jit64 //TODO: find easy cases and optimize them, do a breakout like ps_arith void ps_mergeXX(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -283,8 +295,10 @@ namespace Jit64 //TODO: add optimized cases void ps_maddXX(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; if (inst.Rc) { Default(inst); return; @@ -330,8 +344,10 @@ namespace Jit64 void ps_mulsX(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITPairedOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; Default(inst); return; diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_SystemRegisters.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_SystemRegisters.cpp index 78850762a8..3522c4b137 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_SystemRegisters.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_SystemRegisters.cpp @@ -37,8 +37,10 @@ namespace Jit64 { void mtspr(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITSystemRegistersOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; u32 iIndex = (inst.SPRU << 5) | (inst.SPRL & 0x1F); int d = inst.RD; @@ -87,8 +89,10 @@ namespace Jit64 void mfspr(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITSystemRegistersOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; u32 iIndex = (inst.SPRU << 5) | (inst.SPRL & 0x1F); int d = inst.RD; @@ -115,7 +119,7 @@ namespace Jit64 // ======================================================================================= - // ... ? Don't interpret this, if we do we get thrown out + // Don't interpret this, if we do we get thrown out // -------------- void mtmsr(UGeckoInstruction inst) { @@ -133,8 +137,10 @@ namespace Jit64 void mfmsr(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITSystemRegistersOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; //Privileged? gpr.LoadToX64(inst.RD, false); @@ -143,8 +149,10 @@ namespace Jit64 void mftb(UGeckoInstruction inst) { +#ifdef JIT_OFF_OPTIONS if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITSystemRegistersOff) {Default(inst); return;} // turn off from debugger +#endif INSTRUCTION_START; mfspr(inst); } diff --git a/Source/Core/DebuggerWX/Src/CodeWindow.cpp b/Source/Core/DebuggerWX/Src/CodeWindow.cpp index 71604ddc63..bf0ee6b8b1 100644 --- a/Source/Core/DebuggerWX/Src/CodeWindow.cpp +++ b/Source/Core/DebuggerWX/Src/CodeWindow.cpp @@ -325,6 +325,7 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam wxMenuItem* interpreter = pCoreMenu->Append(IDM_INTERPRETER, _T("&Interpreter"), wxEmptyString, wxITEM_CHECK); interpreter->Check(!_LocalCoreStartupParameter.bUseJIT); +#ifdef JIT_OFF_OPTIONS jitoff = pCoreMenu->Append(IDM_JITOFF, _T("&JIT off"), wxEmptyString, wxITEM_CHECK); jitoff->Check(_LocalCoreStartupParameter.bJITOff); @@ -342,6 +343,7 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam jitsroff = pCoreMenu->Append(IDM_JITSROFF, _T("&JIT SystemRegisters off"), wxEmptyString, wxITEM_CHECK); jitsroff->Check(_LocalCoreStartupParameter.bJITSystemRegistersOff); +#endif // wxMenuItem* dualcore = pDebugMenu->Append(IDM_DUALCORE, _T("&DualCore"), wxEmptyString, wxITEM_CHECK); // dualcore->Check(_LocalCoreStartupParameter.bUseDualCore);