Jit64/JitIL: Relocate instruction typedefs

This commit is contained in:
Lioncash 2015-08-22 11:50:28 -04:00
parent c56717e058
commit a248a4d2ce
4 changed files with 16 additions and 25 deletions

View File

@ -151,6 +151,7 @@ public:
void UpdateRoundingMode(); void UpdateRoundingMode();
// OPCODES // OPCODES
using Instruction = void (Jit64::*)(UGeckoInstruction instCode);
void FallBackToInterpreter(UGeckoInstruction _inst); void FallBackToInterpreter(UGeckoInstruction _inst);
void DoNothing(UGeckoInstruction _inst); void DoNothing(UGeckoInstruction _inst);
void HLEFunction(UGeckoInstruction _inst); void HLEFunction(UGeckoInstruction _inst);

View File

@ -5,15 +5,12 @@
#include "Core/PowerPC/Jit64/Jit.h" #include "Core/PowerPC/Jit64/Jit.h"
#include "Core/PowerPC/Jit64/Jit64_Tables.h" #include "Core/PowerPC/Jit64/Jit64_Tables.h"
// Should be moved in to the Jit class static Jit64::Instruction dynaOpTable[64];
typedef void (Jit64::*_Instruction) (UGeckoInstruction instCode); static Jit64::Instruction dynaOpTable4[1024];
static Jit64::Instruction dynaOpTable19[1024];
static _Instruction dynaOpTable[64]; static Jit64::Instruction dynaOpTable31[1024];
static _Instruction dynaOpTable4[1024]; static Jit64::Instruction dynaOpTable59[32];
static _Instruction dynaOpTable19[1024]; static Jit64::Instruction dynaOpTable63[1024];
static _Instruction dynaOpTable31[1024];
static _Instruction dynaOpTable59[32];
static _Instruction dynaOpTable63[1024];
void Jit64::DynaRunTable4(UGeckoInstruction _inst) {(this->*dynaOpTable4 [_inst.SUBOP10])(_inst);} void Jit64::DynaRunTable4(UGeckoInstruction _inst) {(this->*dynaOpTable4 [_inst.SUBOP10])(_inst);}
void Jit64::DynaRunTable19(UGeckoInstruction _inst) {(this->*dynaOpTable19[_inst.SUBOP10])(_inst);} void Jit64::DynaRunTable19(UGeckoInstruction _inst) {(this->*dynaOpTable19[_inst.SUBOP10])(_inst);}
void Jit64::DynaRunTable31(UGeckoInstruction _inst) {(this->*dynaOpTable31[_inst.SUBOP10])(_inst);} void Jit64::DynaRunTable31(UGeckoInstruction _inst) {(this->*dynaOpTable31[_inst.SUBOP10])(_inst);}
@ -23,8 +20,7 @@ void Jit64::DynaRunTable63(UGeckoInstruction _inst) {(this->*dynaOpTable63[_inst
struct GekkoOPTemplate struct GekkoOPTemplate
{ {
int opcode; int opcode;
_Instruction Inst; Jit64::Instruction Inst;
//GekkoOPInfo opinfo; // Doesn't need opinfo, Interpreter fills it out
}; };
static GekkoOPTemplate primarytable[] = static GekkoOPTemplate primarytable[] =

View File

@ -87,6 +87,7 @@ public:
void WriteCode(u32 exitAddress); void WriteCode(u32 exitAddress);
// OPCODES // OPCODES
using Instruction = void (JitIL::*)(UGeckoInstruction instCode);
void FallBackToInterpreter(UGeckoInstruction _inst) override; void FallBackToInterpreter(UGeckoInstruction _inst) override;
void DoNothing(UGeckoInstruction _inst) override; void DoNothing(UGeckoInstruction _inst) override;
void HLEFunction(UGeckoInstruction _inst) override; void HLEFunction(UGeckoInstruction _inst) override;
@ -96,5 +97,4 @@ public:
void DynaRunTable31(UGeckoInstruction _inst) override; void DynaRunTable31(UGeckoInstruction _inst) override;
void DynaRunTable59(UGeckoInstruction _inst) override; void DynaRunTable59(UGeckoInstruction _inst) override;
void DynaRunTable63(UGeckoInstruction _inst) override; void DynaRunTable63(UGeckoInstruction _inst) override;
}; };

View File

@ -4,15 +4,12 @@
#include "Core/PowerPC/Jit64IL/JitIL_Tables.h" #include "Core/PowerPC/Jit64IL/JitIL_Tables.h"
// Should be moved in to the Jit class static JitIL::Instruction dynaOpTable[64];
typedef void (JitIL::*_Instruction) (UGeckoInstruction instCode); static JitIL::Instruction dynaOpTable4[1024];
static JitIL::Instruction dynaOpTable19[1024];
static _Instruction dynaOpTable[64]; static JitIL::Instruction dynaOpTable31[1024];
static _Instruction dynaOpTable4[1024]; static JitIL::Instruction dynaOpTable59[32];
static _Instruction dynaOpTable19[1024]; static JitIL::Instruction dynaOpTable63[1024];
static _Instruction dynaOpTable31[1024];
static _Instruction dynaOpTable59[32];
static _Instruction dynaOpTable63[1024];
void JitIL::DynaRunTable4(UGeckoInstruction _inst) {(this->*dynaOpTable4 [_inst.SUBOP10])(_inst);} void JitIL::DynaRunTable4(UGeckoInstruction _inst) {(this->*dynaOpTable4 [_inst.SUBOP10])(_inst);}
void JitIL::DynaRunTable19(UGeckoInstruction _inst) {(this->*dynaOpTable19[_inst.SUBOP10])(_inst);} void JitIL::DynaRunTable19(UGeckoInstruction _inst) {(this->*dynaOpTable19[_inst.SUBOP10])(_inst);}
@ -20,13 +17,10 @@ void JitIL::DynaRunTable31(UGeckoInstruction _inst) {(this->*dynaOpTable31[_inst
void JitIL::DynaRunTable59(UGeckoInstruction _inst) {(this->*dynaOpTable59[_inst.SUBOP5 ])(_inst);} void JitIL::DynaRunTable59(UGeckoInstruction _inst) {(this->*dynaOpTable59[_inst.SUBOP5 ])(_inst);}
void JitIL::DynaRunTable63(UGeckoInstruction _inst) {(this->*dynaOpTable63[_inst.SUBOP10])(_inst);} void JitIL::DynaRunTable63(UGeckoInstruction _inst) {(this->*dynaOpTable63[_inst.SUBOP10])(_inst);}
struct GekkoOPTemplate struct GekkoOPTemplate
{ {
int opcode; int opcode;
_Instruction Inst; JitIL::Instruction Inst;
//GekkoOPInfo opinfo; // Doesn't need opinfo, Interpreter fills it out
}; };
static GekkoOPTemplate primarytable[] = static GekkoOPTemplate primarytable[] =