Index: Source/Core/Core/Src/PowerPC/JitCommon/JitCache.h
===================================================================
--- Source/Core/Core/Src/PowerPC/JitCommon/JitCache.h	(revision 6246)
+++ Source/Core/Core/Src/PowerPC/JitCommon/JitCache.h	(working copy)
@@ -39,12 +39,12 @@
 #define JIT_ICACHE_INVALID_BYTE 0x14
 #define JIT_ICACHE_INVALID_WORD 0x14141414
 
-// TODO(ector) - optimize this struct for size
 struct JitBlock
 {
 	u32 exitAddress[2];  // 0xFFFFFFFF == unknown
 	u8 *exitPtrs[2];     // to be able to rewrite the exit jump
-	bool linkStatus[2];
+	const u8 *checkedEntry;
+	const u8 *normalEntry;
 
 	u32 originalAddress;
 	u32 originalFirstOpcode; //to be able to restore
@@ -60,10 +60,9 @@
 	u64 ticStop;		// for profiling - time.
 	u64 ticCounter;	// for profiling - time.
 #endif
-	const u8 *checkedEntry;
-	const u8 *normalEntry;
-	bool invalid;
 	int flags;
+	bool linkStatus[2];
+	bool invalid;
 
 	bool ContainsAddress(u32 em_address);
 };
Index: Source/Core/Core/Src/PowerPC/Jit64IL/JitIL_Tables.cpp
===================================================================
--- Source/Core/Core/Src/PowerPC/Jit64IL/JitIL_Tables.cpp	(revision 6246)
+++ Source/Core/Core/Src/PowerPC/Jit64IL/JitIL_Tables.cpp	(working copy)
@@ -37,341 +37,341 @@
 
 struct GekkoOPTemplate
 {
+	_Instruction Inst;
 	int opcode;
-	_Instruction Inst;
 	//GekkoOPInfo opinfo; // Doesn't need opinfo, Interpreter fills it out
 	int runCount;
 };
 
 static GekkoOPTemplate primarytable[] = 
 {
-	{4,  &JitIL::DynaRunTable4}, //"RunTable4",  OPTYPE_SUBTABLE | (4<<24), 0}},
-	{19, &JitIL::DynaRunTable19}, //"RunTable19", OPTYPE_SUBTABLE | (19<<24), 0}},
-	{31, &JitIL::DynaRunTable31}, //"RunTable31", OPTYPE_SUBTABLE | (31<<24), 0}},
-	{59, &JitIL::DynaRunTable59}, //"RunTable59", OPTYPE_SUBTABLE | (59<<24), 0}},
-	{63, &JitIL::DynaRunTable63}, //"RunTable63", OPTYPE_SUBTABLE | (63<<24), 0}},
+	{&JitIL::DynaRunTable4, 4}, //"RunTable4",  OPTYPE_SUBTABLE | (4<<24), 0}},
+	{&JitIL::DynaRunTable19, 19}, //"RunTable19", OPTYPE_SUBTABLE | (19<<24), 0}},
+	{&JitIL::DynaRunTable31, 31}, //"RunTable31", OPTYPE_SUBTABLE | (31<<24), 0}},
+	{&JitIL::DynaRunTable59, 59}, //"RunTable59", OPTYPE_SUBTABLE | (59<<24), 0}},
+	{&JitIL::DynaRunTable63, 63}, //"RunTable63", OPTYPE_SUBTABLE | (63<<24), 0}},
 
-	{16, &JitIL::bcx}, //"bcx", OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{18, &JitIL::bx}, //"bx",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&JitIL::bcx, 16}, //"bcx", OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&JitIL::bx, 18}, //"bx",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
 
-	{1,  &JitIL::HLEFunction}, //"HLEFunction", OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{2,  &JitIL::Default}, //"DynaBlock",   OPTYPE_SYSTEM, 0}},
-	{3,  &JitIL::Default}, //"twi",         OPTYPE_SYSTEM, 0}},
-	{17, &JitIL::sc}, //"sc",          OPTYPE_SYSTEM, FL_ENDBLOCK, 1}},
+	{&JitIL::HLEFunction, 1}, //"HLEFunction", OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&JitIL::Default, 2}, //"DynaBlock",   OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 3}, //"twi",         OPTYPE_SYSTEM, 0}},
+	{&JitIL::sc, 17}, //"sc",          OPTYPE_SYSTEM, FL_ENDBLOCK, 1}},
 
-	{7,  &JitIL::mulli}, //"mulli",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_RC_BIT, 2}},
-	{8,  &JitIL::subfic}, //"subfic",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_A |	FL_SET_CA}},
-	{10, &JitIL::cmpXX}, //"cmpli",    OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
-	{11, &JitIL::cmpXX}, //"cmpi",     OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
-	{12, &JitIL::reg_imm}, //"addic",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CA}},
-	{13, &JitIL::reg_imm}, //"addic_rc", OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CR0}},
-	{14, &JitIL::reg_imm}, //"addi",     OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
-	{15, &JitIL::reg_imm}, //"addis",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
+	{&JitIL::mulli, 7}, //"mulli",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_RC_BIT, 2}},
+	{&JitIL::subfic, 8}, //"subfic",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_A |	FL_SET_CA}},
+	{&JitIL::cmpXX, 10}, //"cmpli",    OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
+	{&JitIL::cmpXX, 11}, //"cmpi",     OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
+	{&JitIL::reg_imm, 12}, //"addic",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CA}},
+	{&JitIL::reg_imm, 13}, //"addic_rc", OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CR0}},
+	{&JitIL::reg_imm, 14}, //"addi",     OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
+	{&JitIL::reg_imm, 15}, //"addis",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
 
-	{20, &JitIL::rlwimix}, //"rlwimix",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_A | FL_IN_S | FL_RC_BIT}},
-	{21, &JitIL::rlwinmx}, //"rlwinmx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{23, &JitIL::rlwnmx}, //"rlwnmx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_IN_B | FL_RC_BIT}},
+	{&JitIL::rlwimix, 20}, //"rlwimix",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_A | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::rlwinmx, 21}, //"rlwinmx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::rlwnmx, 23}, //"rlwnmx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_IN_B | FL_RC_BIT}},
 
-	{24, &JitIL::reg_imm}, //"ori",      OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{25, &JitIL::reg_imm}, //"oris",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{26, &JitIL::reg_imm}, //"xori",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{27, &JitIL::reg_imm}, //"xoris",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{28, &JitIL::reg_imm}, //"andi_rc",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
-	{29, &JitIL::reg_imm}, //"andis_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
+	{&JitIL::reg_imm, 24}, //"ori",      OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&JitIL::reg_imm, 25}, //"oris",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&JitIL::reg_imm, 26}, //"xori",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&JitIL::reg_imm, 27}, //"xoris",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&JitIL::reg_imm, 28}, //"andi_rc",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
+	{&JitIL::reg_imm, 29}, //"andis_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
 
-	{32, &JitIL::lXz}, //"lwz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{33, &JitIL::lXz}, //"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{34, &JitIL::lXz}, //"lbz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{35, &JitIL::lbzu}, //"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{40, &JitIL::lXz}, //"lhz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{41, &JitIL::lXz}, //"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{42, &JitIL::lha}, //"lha",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{43, &JitIL::Default}, //"lhau", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&JitIL::lXz ,32}, //"lwz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&JitIL::lXz, 33}, //"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&JitIL::lXz, 34}, //"lbz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&JitIL::lbzu, 35}, //"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&JitIL::lXz, 40}, //"lhz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&JitIL::lXz, 41}, //"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&JitIL::lha, 42}, //"lha",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&JitIL::Default, 43}, //"lhau", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
 
-	{44, &JitIL::stX}, //"sth",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{45, &JitIL::stX}, //"sthu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
-	{36, &JitIL::stX}, //"stw",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{37, &JitIL::stX}, //"stwu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
-	{38, &JitIL::stX}, //"stb",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{39, &JitIL::stX}, //"stbu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 44}, //"sth",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 45}, //"sthu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 36}, //"stw",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 37}, //"stwu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 38}, //"stb",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&JitIL::stX, 39}, //"stbu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
 
-	{46, &JitIL::lmw}, //"lmw",   OPTYPE_SYSTEM, FL_EVIL, 10}},
-	{47, &JitIL::stmw}, //"stmw",  OPTYPE_SYSTEM, FL_EVIL, 10}},
+	{&JitIL::lmw, 46}, //"lmw",   OPTYPE_SYSTEM, FL_EVIL, 10}},
+	{&JitIL::stmw, 47}, //"stmw",  OPTYPE_SYSTEM, FL_EVIL, 10}},
 
-	{48, &JitIL::lfs}, //"lfs",  OPTYPE_LOADFP, FL_IN_A}},
-	{49, &JitIL::Default}, //"lfsu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
-	{50, &JitIL::lfd}, //"lfd",  OPTYPE_LOADFP, FL_IN_A}},
-	{51, &JitIL::Default}, //"lfdu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
+	{&JitIL::lfs, 48}, //"lfs",  OPTYPE_LOADFP, FL_IN_A}},
+	{&JitIL::Default, 49}, //"lfsu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
+	{&JitIL::lfd, 50}, //"lfd",  OPTYPE_LOADFP, FL_IN_A}},
+	{&JitIL::Default, 51}, //"lfdu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
 
-	{52, &JitIL::stfs}, //"stfs",  OPTYPE_STOREFP, FL_IN_A}},
-	{53, &JitIL::stfs}, //"stfsu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
-	{54, &JitIL::stfd}, //"stfd",  OPTYPE_STOREFP, FL_IN_A}},
-	{55, &JitIL::Default}, //"stfdu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
+	{&JitIL::stfs, 52}, //"stfs",  OPTYPE_STOREFP, FL_IN_A}},
+	{&JitIL::stfs, 53}, //"stfsu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
+	{&JitIL::stfd, 54}, //"stfd",  OPTYPE_STOREFP, FL_IN_A}},
+	{&JitIL::Default, 55}, //"stfdu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
 
-	{56, &JitIL::psq_l}, //"psq_l",   OPTYPE_PS, FL_IN_A}},
-	{57, &JitIL::psq_l}, //"psq_lu",  OPTYPE_PS, FL_OUT_A | FL_IN_A}},
-	{60, &JitIL::psq_st}, //"psq_st",  OPTYPE_PS, FL_IN_A}},
-	{61, &JitIL::psq_st}, //"psq_stu", OPTYPE_PS, FL_OUT_A | FL_IN_A}},
+	{&JitIL::psq_l, 56}, //"psq_l",   OPTYPE_PS, FL_IN_A}},
+	{&JitIL::psq_l, 57}, //"psq_lu",  OPTYPE_PS, FL_OUT_A | FL_IN_A}},
+	{&JitIL::psq_st, 60}, //"psq_st",  OPTYPE_PS, FL_IN_A}},
+	{&JitIL::psq_st, 61}, //"psq_stu", OPTYPE_PS, FL_OUT_A | FL_IN_A}},
 
 	//missing: 0, 5, 6, 9, 22, 30, 62, 58
-	{0,  &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{5,  &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{6,  &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{9,  &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{22, &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{30, &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{62, &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{58, &JitIL::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 0}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 5}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 6}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 9}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 22}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 30}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 62}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&JitIL::Default, 58}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
 };
 
 static GekkoOPTemplate table4[] = 
 {    //SUBOP10
-	{0,    &JitIL::Default}, //"ps_cmpu0",   OPTYPE_PS, FL_SET_CRn}},
-	{32,   &JitIL::Default}, //"ps_cmpo0",   OPTYPE_PS, FL_SET_CRn}},
-	{40,   &JitIL::ps_sign}, //"ps_neg",     OPTYPE_PS, FL_RC_BIT}},
-	{136,  &JitIL::ps_sign}, //"ps_nabs",    OPTYPE_PS, FL_RC_BIT}},
-	{264,  &JitIL::ps_sign}, //"ps_abs",     OPTYPE_PS, FL_RC_BIT}},
-	{64,   &JitIL::Default}, //"ps_cmpu1",   OPTYPE_PS, FL_RC_BIT}},
-	{72,   &JitIL::ps_mr}, //"ps_mr",      OPTYPE_PS, FL_RC_BIT}},
-	{96,   &JitIL::Default}, //"ps_cmpo1",   OPTYPE_PS, FL_RC_BIT}},
-	{528,  &JitIL::ps_mergeXX}, //"ps_merge00", OPTYPE_PS, FL_RC_BIT}},
-	{560,  &JitIL::ps_mergeXX}, //"ps_merge01", OPTYPE_PS, FL_RC_BIT}},
-	{592,  &JitIL::ps_mergeXX}, //"ps_merge10", OPTYPE_PS, FL_RC_BIT}},
-	{624,  &JitIL::ps_mergeXX}, //"ps_merge11", OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::Default, 0}, //"ps_cmpu0",   OPTYPE_PS, FL_SET_CRn}},
+	{&JitIL::Default, 32}, //"ps_cmpo0",   OPTYPE_PS, FL_SET_CRn}},
+	{&JitIL::ps_sign, 40}, //"ps_neg",     OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_sign, 136}, //"ps_nabs",    OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_sign, 264}, //"ps_abs",     OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::Default, 64}, //"ps_cmpu1",   OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_mr, 72}, //"ps_mr",      OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::Default, 96}, //"ps_cmpo1",   OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_mergeXX, 528}, //"ps_merge00", OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_mergeXX, 560}, //"ps_merge01", OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_mergeXX, 592}, //"ps_merge10", OPTYPE_PS, FL_RC_BIT}},
+	{&JitIL::ps_mergeXX, 624}, //"ps_merge11", OPTYPE_PS, FL_RC_BIT}},
 
-	{1014, &JitIL::Default}, //"dcbz_l",     OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 1014}, //"dcbz_l",     OPTYPE_SYSTEM, 0}},
 };		
 
 static GekkoOPTemplate table4_2[] = 
 {
-	{10, &JitIL::ps_sum}, //"ps_sum0",   OPTYPE_PS, 0}},
-	{11, &JitIL::ps_sum}, //"ps_sum1",   OPTYPE_PS, 0}},
-	{12, &JitIL::ps_muls}, //"ps_muls0",  OPTYPE_PS, 0}},
-	{13, &JitIL::ps_muls}, //"ps_muls1",  OPTYPE_PS, 0}},
-	{14, &JitIL::ps_maddXX}, //"ps_madds0", OPTYPE_PS, 0}},
-	{15, &JitIL::ps_maddXX}, //"ps_madds1", OPTYPE_PS, 0}},
-	{18, &JitIL::ps_arith}, //"ps_div",    OPTYPE_PS, 0, 16}},
-	{20, &JitIL::ps_arith}, //"ps_sub",    OPTYPE_PS, 0}},
-	{21, &JitIL::ps_arith}, //"ps_add",    OPTYPE_PS, 0}},
-	{23, &JitIL::ps_sel}, //"ps_sel",    OPTYPE_PS, 0}},
-	{24, &JitIL::Default}, //"ps_res",    OPTYPE_PS, 0}},
-	{25, &JitIL::ps_arith}, //"ps_mul",    OPTYPE_PS, 0}},
-	{26, &JitIL::ps_rsqrte}, //"ps_rsqrte", OPTYPE_PS, 0, 1}},
-	{28, &JitIL::ps_maddXX}, //"ps_msub",   OPTYPE_PS, 0}},
-	{29, &JitIL::ps_maddXX}, //"ps_madd",   OPTYPE_PS, 0}},
-	{30, &JitIL::ps_maddXX}, //"ps_nmsub",  OPTYPE_PS, 0}},
-	{31, &JitIL::ps_maddXX}, //"ps_nmadd",  OPTYPE_PS, 0}},
+	{&JitIL::ps_sum, 10}, //"ps_sum0",   OPTYPE_PS, 0}},
+	{&JitIL::ps_sum, 11}, //"ps_sum1",   OPTYPE_PS, 0}},
+	{&JitIL::ps_muls, 12}, //"ps_muls0",  OPTYPE_PS, 0}},
+	{&JitIL::ps_muls, 13}, //"ps_muls1",  OPTYPE_PS, 0}},
+	{&JitIL::ps_maddXX, 14}, //"ps_madds0", OPTYPE_PS, 0}},
+	{&JitIL::ps_maddXX, 15}, //"ps_madds1", OPTYPE_PS, 0}},
+	{&JitIL::ps_arith, 18}, //"ps_div",    OPTYPE_PS, 0, 16}},
+	{&JitIL::ps_arith, 20}, //"ps_sub",    OPTYPE_PS, 0}},
+	{&JitIL::ps_arith, 21}, //"ps_add",    OPTYPE_PS, 0}},
+	{&JitIL::ps_sel, 23}, //"ps_sel",    OPTYPE_PS, 0}},
+	{&JitIL::Default, 24}, //"ps_res",    OPTYPE_PS, 0}},
+	{&JitIL::ps_arith, 25}, //"ps_mul",    OPTYPE_PS, 0}},
+	{&JitIL::ps_rsqrte, 26}, //"ps_rsqrte", OPTYPE_PS, 0, 1}},
+	{&JitIL::ps_maddXX, 28}, //"ps_msub",   OPTYPE_PS, 0}},
+	{&JitIL::ps_maddXX, 29}, //"ps_madd",   OPTYPE_PS, 0}},
+	{&JitIL::ps_maddXX, 30}, //"ps_nmsub",  OPTYPE_PS, 0}},
+	{&JitIL::ps_maddXX, 31}, //"ps_nmadd",  OPTYPE_PS, 0}},
 };
 
 
 static GekkoOPTemplate table4_3[] = 
 {
-	{6,  &JitIL::Default}, //"psq_lx",   OPTYPE_PS, 0}},
-	{7,  &JitIL::Default}, //"psq_stx",  OPTYPE_PS, 0}},
-	{38, &JitIL::Default}, //"psq_lux",  OPTYPE_PS, 0}},
-	{39, &JitIL::Default}, //"psq_stux", OPTYPE_PS, 0}}, 
+	{&JitIL::Default, 6}, //"psq_lx",   OPTYPE_PS, 0}},
+	{&JitIL::Default, 7}, //"psq_stx",  OPTYPE_PS, 0}},
+	{&JitIL::Default, 38}, //"psq_lux",  OPTYPE_PS, 0}},
+	{&JitIL::Default, 39}, //"psq_stux", OPTYPE_PS, 0}},
 };
 
 static GekkoOPTemplate table19[] = 
 {
-	{528, &JitIL::bcctrx}, //"bcctrx", OPTYPE_BRANCH, FL_ENDBLOCK}},
-	{16,  &JitIL::bclrx}, //"bclrx",  OPTYPE_BRANCH, FL_ENDBLOCK}},
-	{257, &JitIL::crXX}, //"crand",  OPTYPE_CR, FL_EVIL}},
-	{129, &JitIL::crXX}, //"crandc", OPTYPE_CR, FL_EVIL}},
-	{289, &JitIL::crXX}, //"creqv",  OPTYPE_CR, FL_EVIL}},
-	{225, &JitIL::crXX}, //"crnand", OPTYPE_CR, FL_EVIL}},
-	{33,  &JitIL::crXX}, //"crnor",  OPTYPE_CR, FL_EVIL}},
-	{449, &JitIL::crXX}, //"cror",   OPTYPE_CR, FL_EVIL}},
-	{417, &JitIL::crXX}, //"crorc",  OPTYPE_CR, FL_EVIL}},
-	{193, &JitIL::crXX}, //"crxor",  OPTYPE_CR, FL_EVIL}},
+	{&JitIL::bcctrx, 528}, //"bcctrx", OPTYPE_BRANCH, FL_ENDBLOCK}},
+	{&JitIL::bclrx, 16}, //"bclrx",  OPTYPE_BRANCH, FL_ENDBLOCK}},
+	{&JitIL::crXX, 257}, //"crand",  OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 129}, //"crandc", OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 289}, //"creqv",  OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 225}, //"crnand", OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 33}, //"crnor",  OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 449}, //"cror",   OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 417}, //"crorc",  OPTYPE_CR, FL_EVIL}},
+	{&JitIL::crXX, 193}, //"crxor",  OPTYPE_CR, FL_EVIL}},
 												   
-	{150, &JitIL::DoNothing}, //"isync",  OPTYPE_ICACHE, FL_EVIL}},
-	{0,   &JitIL::mcrf}, //"mcrf",   OPTYPE_SYSTEM, FL_EVIL}},
+	{&JitIL::DoNothing, 150}, //"isync",  OPTYPE_ICACHE, FL_EVIL}},
+	{&JitIL::mcrf, 0}, //"mcrf",   OPTYPE_SYSTEM, FL_EVIL}},
 												   
-	{50,  &JitIL::rfi}, //"rfi",    OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}},
-	{18,  &JitIL::Default}, //"rfid",   OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}}
+	{&JitIL::rfi, 50}, //"rfi",    OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}},
+	{&JitIL::Default, 18}, //"rfid",   OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}}
 };
 
 
 static GekkoOPTemplate table31[] = 
 {
-	{28,  &JitIL::boolX}, //"andx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{60,  &JitIL::Default}, //"andcx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{444, &JitIL::boolX}, //"orx",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{124, &JitIL::Default}, //"norx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{316, &JitIL::boolX}, //"xorx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{412, &JitIL::Default}, //"orcx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{476, &JitIL::Default}, //"nandx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{284, &JitIL::Default}, //"eqvx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{0,   &JitIL::cmpXX}, //"cmp",    OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
-	{32,  &JitIL::cmpXX}, //"cmpl",   OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
-	{26,  &JitIL::cntlzwx}, //"cntlzwx",OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{922, &JitIL::extshx}, //"extshx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{954, &JitIL::extsbx}, //"extsbx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{536, &JitIL::srwx}, //"srwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{792, &JitIL::srawx}, //"srawx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{824, &JitIL::srawix}, //"srawix", OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{24,  &JitIL::slwx}, //"slwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::boolX, 28}, //"andx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::Default, 60}, //"andcx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::boolX, 444}, //"orx",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::Default, 124}, //"norx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::boolX, 316}, //"xorx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::Default, 412}, //"orcx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::Default, 476}, //"nandx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::Default, 284}, //"eqvx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&JitIL::cmpXX, 0}, //"cmp",    OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
+	{&JitIL::cmpXX, 32}, //"cmpl",   OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
+	{&JitIL::cntlzwx, 26}, //"cntlzwx",OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::extshx, 922}, //"extshx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::extsbx, 954}, //"extsbx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::srwx, 536}, //"srwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::srawx, 792}, //"srawx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::srawix, 824}, //"srawix", OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&JitIL::slwx, 24}, //"slwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
 
-	{54,   &JitIL::Default}, //"dcbst",  OPTYPE_DCACHE, 0, 4}},
-	{86,   &JitIL::DoNothing}, //"dcbf",   OPTYPE_DCACHE, 0, 4}},
-	{246,  &JitIL::Default}, //"dcbtst", OPTYPE_DCACHE, 0, 1}},
-	{278,  &JitIL::Default}, //"dcbt",   OPTYPE_DCACHE, 0, 1}},
-	{470,  &JitIL::Default}, //"dcbi",   OPTYPE_DCACHE, 0, 4}},
-	{758,  &JitIL::Default}, //"dcba",   OPTYPE_DCACHE, 0, 4}},
-	{1014, &JitIL::dcbz}, //"dcbz",   OPTYPE_DCACHE, 0, 4}},
+	{&JitIL::Default, 54}, //"dcbst",  OPTYPE_DCACHE, 0, 4}},
+	{&JitIL::DoNothing, 86}, //"dcbf",   OPTYPE_DCACHE, 0, 4}},
+	{&JitIL::Default, 246}, //"dcbtst", OPTYPE_DCACHE, 0, 1}},
+	{&JitIL::Default, 278}, //"dcbt",   OPTYPE_DCACHE, 0, 1}},
+	{&JitIL::Default, 470}, //"dcbi",   OPTYPE_DCACHE, 0, 4}},
+	{&JitIL::Default, 758}, //"dcba",   OPTYPE_DCACHE, 0, 4}},
+	{&JitIL::dcbz, 1014}, //"dcbz",   OPTYPE_DCACHE, 0, 4}},
 	//load word
-	{23,  &JitIL::lXzx}, //"lwzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{55,  &JitIL::lXzx}, //"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::lXzx, 23}, //"lwzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::lXzx, 55}, //"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load halfword
-	{279, &JitIL::lXzx}, //"lhzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{311, &JitIL::lXzx}, //"lhzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::lXzx, 279}, //"lhzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::lXzx, 311}, //"lhzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load halfword signextend
-	{343, &JitIL::lhax}, //"lhax",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{375, &JitIL::Default}, //"lhaux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::lhax, 343}, //"lhax",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 375}, //"lhaux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load byte
-	{87,  &JitIL::lXzx}, //"lbzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{119, &JitIL::lXzx}, //"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::lXzx, 87}, //"lbzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::lXzx, 119}, //"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load byte reverse
-	{534, &JitIL::Default}, //"lwbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{790, &JitIL::Default}, //"lhbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 534}, //"lwbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 790}, //"lhbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
 
 	// Conditional load/store (Wii SMP)
-	{150, &JitIL::Default}, //"stwcxd", OPTYPE_STORE, FL_EVIL | FL_SET_CR0}},
-	{20,  &JitIL::Default}, //"lwarx",  OPTYPE_LOAD, FL_EVIL | FL_OUT_D | FL_IN_A0B | FL_SET_CR0}},
+	{&JitIL::Default, 150}, //"stwcxd", OPTYPE_STORE, FL_EVIL | FL_SET_CR0}},
+	{&JitIL::Default, 20}, //"lwarx",  OPTYPE_LOAD, FL_EVIL | FL_OUT_D | FL_IN_A0B | FL_SET_CR0}},
 
 	//load string (interpret these)
-	{533, &JitIL::Default}, //"lswx",  OPTYPE_LOAD, FL_EVIL | FL_IN_A | FL_OUT_D}},
-	{597, &JitIL::Default}, //"lswi",  OPTYPE_LOAD, FL_EVIL | FL_IN_AB | FL_OUT_D}},
+	{&JitIL::Default, 533}, //"lswx",  OPTYPE_LOAD, FL_EVIL | FL_IN_A | FL_OUT_D}},
+	{&JitIL::Default, 597}, //"lswi",  OPTYPE_LOAD, FL_EVIL | FL_IN_AB | FL_OUT_D}},
 
 	//store word
-	{151, &JitIL::stXx}, //"stwx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{183, &JitIL::stXx}, //"stwux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::stXx, 151}, //"stwx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::stXx, 183}, //"stwux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store halfword
-	{407, &JitIL::stXx}, //"sthx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{439, &JitIL::stXx}, //"sthux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::stXx, 407}, //"sthx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::stXx, 439}, //"sthux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store byte
-	{215, &JitIL::stXx}, //"stbx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{247, &JitIL::stXx}, //"stbux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&JitIL::stXx, 215}, //"stbx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::stXx, 247}, //"stbux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store bytereverse
-	{662, &JitIL::Default}, //"stwbrx", OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{918, &JitIL::Default}, //"sthbrx", OPTYPE_STORE, FL_IN_A | FL_IN_B}},
+	{&JitIL::Default, 662}, //"stwbrx", OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 918}, //"sthbrx", OPTYPE_STORE, FL_IN_A | FL_IN_B}},
 
-	{661, &JitIL::Default}, //"stswx",  OPTYPE_STORE, FL_EVIL}},
-	{725, &JitIL::Default}, //"stswi",  OPTYPE_STORE, FL_EVIL}},
+	{&JitIL::Default, 661}, //"stswx",  OPTYPE_STORE, FL_EVIL}},
+	{&JitIL::Default, 725}, //"stswi",  OPTYPE_STORE, FL_EVIL}},
 
 	// fp load/store	
-	{535, &JitIL::lfsx}, //"lfsx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
-	{567, &JitIL::Default}, //"lfsux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
-	{599, &JitIL::Default}, //"lfdx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
-	{631, &JitIL::Default}, //"lfdux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
+	{&JitIL::lfsx, 535}, //"lfsx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 567}, //"lfsux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
+	{&JitIL::Default, 599}, //"lfdx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 631}, //"lfdux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
 
-	{663, &JitIL::stfsx}, //"stfsx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
-	{695, &JitIL::Default}, //"stfsux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
-	{727, &JitIL::Default}, //"stfdx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
-	{759, &JitIL::Default}, //"stfdux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
-	{983, &JitIL::Default}, //"stfiwx", OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::stfsx, 663}, //"stfsx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 695}, //"stfsux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
+	{&JitIL::Default, 727}, //"stfdx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&JitIL::Default, 795}, //"stfdux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
+	{&JitIL::Default, 983}, //"stfiwx", OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
 
-	{19,  &JitIL::mfcr}, //"mfcr",   OPTYPE_SYSTEM, FL_OUT_D}},
-	{83,  &JitIL::mfmsr}, //"mfmsr",  OPTYPE_SYSTEM, FL_OUT_D}},
-	{144, &JitIL::mtcrf}, //"mtcrf",  OPTYPE_SYSTEM, 0}},
-	{146, &JitIL::mtmsr}, //"mtmsr",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{210, &JitIL::Default}, //"mtsr",   OPTYPE_SYSTEM, 0}},
-	{242, &JitIL::Default}, //"mtsrin", OPTYPE_SYSTEM, 0}},
-	{339, &JitIL::mfspr}, //"mfspr",  OPTYPE_SPR, FL_OUT_D}},
-	{467, &JitIL::mtspr}, //"mtspr",  OPTYPE_SPR, 0, 2}},
-	{371, &JitIL::mftb}, //"mftb",   OPTYPE_SYSTEM, FL_OUT_D | FL_TIMER}},
-	{512, &JitIL::Default}, //"mcrxr",  OPTYPE_SYSTEM, 0}},
-	{595, &JitIL::Default}, //"mfsr",   OPTYPE_SYSTEM, FL_OUT_D, 2}},
-	{659, &JitIL::Default}, //"mfsrin", OPTYPE_SYSTEM, FL_OUT_D, 2}},
+	{&JitIL::mfcr, 19}, //"mfcr",   OPTYPE_SYSTEM, FL_OUT_D}},
+	{&JitIL::mfmsr, 83}, //"mfmsr",  OPTYPE_SYSTEM, FL_OUT_D}},
+	{&JitIL::mtcrf, 144}, //"mtcrf",  OPTYPE_SYSTEM, 0}},
+	{&JitIL::mtmsr, 146}, //"mtmsr",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&JitIL::Default, 210}, //"mtsr",   OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 242}, //"mtsrin", OPTYPE_SYSTEM, 0}},
+	{&JitIL::mfspr, 339}, //"mfspr",  OPTYPE_SPR, FL_OUT_D}},
+	{&JitIL::mtspr, 467}, //"mtspr",  OPTYPE_SPR, 0, 2}},
+	{&JitIL::mftb, 371}, //"mftb",   OPTYPE_SYSTEM, FL_OUT_D | FL_TIMER}},
+	{&JitIL::Default, 512}, //"mcrxr",  OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 595}, //"mfsr",   OPTYPE_SYSTEM, FL_OUT_D, 2}},
+	{&JitIL::Default, 659}, //"mfsrin", OPTYPE_SYSTEM, FL_OUT_D, 2}},
 
-	{4,   &JitIL::Default}, //"tw",     OPTYPE_SYSTEM, 0, 1}},
-	{598, &JitIL::DoNothing}, //"sync",   OPTYPE_SYSTEM, 0, 2}},
-	{982, &JitIL::icbi}, //"icbi",   OPTYPE_SYSTEM, FL_ENDBLOCK, 3}},
+	{&JitIL::Default, 4}, //"tw",     OPTYPE_SYSTEM, 0, 1}},
+	{&JitIL::DoNothing, 598}, //"sync",   OPTYPE_SYSTEM, 0, 2}},
+	{&JitIL::icbi, 982}, //"icbi",   OPTYPE_SYSTEM, FL_ENDBLOCK, 3}},
 
 	// Unused instructions on GC
-	{310, &JitIL::Default}, //"eciwx",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{438, &JitIL::Default}, //"ecowx",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{854, &JitIL::Default}, //"eieio",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{306, &JitIL::Default}, //"tlbie",   OPTYPE_SYSTEM, 0}},
-	{370, &JitIL::Default}, //"tlbia",   OPTYPE_SYSTEM, 0}},
-	{566, &JitIL::Default}, //"tlbsync", OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 310}, //"eciwx",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&JitIL::Default, 438}, //"ecowx",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&JitIL::Default, 854}, //"eieio",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&JitIL::Default, 306}, //"tlbie",   OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 370}, //"tlbia",   OPTYPE_SYSTEM, 0}},
+	{&JitIL::Default, 566}, //"tlbsync", OPTYPE_SYSTEM, 0}},
 };
 
 static GekkoOPTemplate table31_2[] = 
 {	
-	{266, &JitIL::addx}, //"addx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{10,  &JitIL::Default}, //"addcx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
-	{138, &JitIL::addex}, //"addex",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{234, &JitIL::Default}, //"addmex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{202, &JitIL::addzex}, //"addzex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{491, &JitIL::Default}, //"divwx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
-	{459, &JitIL::divwux}, //"divwux",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
-	{75,  &JitIL::Default}, //"mulhwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{11,  &JitIL::mulhwux}, //"mulhwux", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{235, &JitIL::mullwx}, //"mullwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{104, &JitIL::negx}, //"negx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{40,  &JitIL::subfx}, //"subfx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{8,   &JitIL::subfcx}, //"subfcx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
-	{136, &JitIL::subfex}, //"subfex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{232, &JitIL::Default}, //"subfmex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{200, &JitIL::Default}, //"subfzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::addx, 266}, //"addx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&JitIL::Default, 10}, //"addcx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::addex, 138}, //"addex",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::Default, 234}, //"addmex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::addzex, 202}, //"addzex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::Default, 491}, //"divwx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
+	{&JitIL::divwux, 459}, //"divwux",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
+	{&JitIL::Default, 75}, //"mulhwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&JitIL::mulhwux, 11}, //"mulhwux", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&JitIL::mullwx, 235}, //"mullwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&JitIL::negx, 104}, //"negx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&JitIL::subfx, 40}, //"subfx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&JitIL::subfcx, 8}, //"subfcx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::subfex, 136}, //"subfex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::Default, 232}, //"subfmex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&JitIL::Default, 200}, //"subfzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
 };
 
 static GekkoOPTemplate table59[] = 
 {
-	{18, &JitIL::Default},       //{"fdivsx",   OPTYPE_FPU, FL_RC_BIT_F, 16}}, 
-	{20, &JitIL::fp_arith_s}, //"fsubsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{21, &JitIL::fp_arith_s}, //"faddsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-//	{22, &JitIL::Default}, //"fsqrtsx",  OPTYPE_FPU, FL_RC_BIT_F}}, // Not implemented on gekko
-	{24, &JitIL::Default}, //"fresx",    OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{25, &JitIL::fp_arith_s}, //"fmulsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{28, &JitIL::fmaddXX}, //"fmsubsx",  OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{29, &JitIL::fmaddXX}, //"fmaddsx",  OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{30, &JitIL::fmaddXX}, //"fnmsubsx", OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{31, &JitIL::fmaddXX}, //"fnmaddsx", OPTYPE_FPU, FL_RC_BIT_F}}, 
+	{&JitIL::Default, 18},       //{"fdivsx",   OPTYPE_FPU, FL_RC_BIT_F, 16}},
+	{&JitIL::fp_arith_s, 20}, //"fsubsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fp_arith_s, 21}, //"faddsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+//	{&JitIL::Default, 22}, //"fsqrtsx",  OPTYPE_FPU, FL_RC_BIT_F}}, // Not implemented on gekko
+	{&JitIL::Default, 24}, //"fresx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fp_arith_s, 25}, //"fmulsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 28}, //"fmsubsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 29}, //"fmaddsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 30}, //"fnmsubsx", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 31}, //"fnmaddsx", OPTYPE_FPU, FL_RC_BIT_F}},
 };							    
 
 static GekkoOPTemplate table63[] = 
 {
-	{264, &JitIL::fsign},   //"fabsx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{32,  &JitIL::fcmpx},   //"fcmpo",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{0,   &JitIL::fcmpx},   //"fcmpu",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{14,  &JitIL::Default}, //"fctiwx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{15,  &JitIL::Default}, //"fctiwzx", OPTYPE_FPU, FL_RC_BIT_F}},
-	{72,  &JitIL::fmrx},    //"fmrx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{136, &JitIL::fsign},   //"fnabsx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{40,  &JitIL::fsign},   //"fnegx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{12,  &JitIL::Default}, //"frspx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fsign, 264},   //"fabsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fcmpx, 32},   //"fcmpo",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fcmpx, 0},   //"fcmpu",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 14}, //"fctiwx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 15}, //"fctiwzx", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmrx, 72},    //"fmrx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fsign, 136},   //"fnabsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fsign, 40},   //"fnegx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 12}, //"frspx",   OPTYPE_FPU, FL_RC_BIT_F}},
 
-	{64,  &JitIL::Default}, //"mcrfs",   OPTYPE_SYSTEMFP, 0}},
-	{583, &JitIL::Default}, //"mffsx",   OPTYPE_SYSTEMFP, 0}},
-	{70,  &JitIL::Default}, //"mtfsb0x", OPTYPE_SYSTEMFP, 0, 2}},
-	{38,  &JitIL::Default}, //"mtfsb1x", OPTYPE_SYSTEMFP, 0, 2}},
-	{134, &JitIL::Default}, //"mtfsfix", OPTYPE_SYSTEMFP, 0, 2}},
-	{711, &JitIL::Default}, //"mtfsfx",  OPTYPE_SYSTEMFP, 0, 2}},
+	{&JitIL::Default, 64}, //"mcrfs",   OPTYPE_SYSTEMFP, 0}},
+	{&JitIL::Default, 583}, //"mffsx",   OPTYPE_SYSTEMFP, 0}},
+	{&JitIL::Default, 70}, //"mtfsb0x", OPTYPE_SYSTEMFP, 0, 2}},
+	{&JitIL::Default, 38}, //"mtfsb1x", OPTYPE_SYSTEMFP, 0, 2}},
+	{&JitIL::Default, 134}, //"mtfsfix", OPTYPE_SYSTEMFP, 0, 2}},
+	{&JitIL::Default, 711}, //"mtfsfx",  OPTYPE_SYSTEMFP, 0, 2}},
 };
 
 static GekkoOPTemplate table63_2[] = 
 {
-	{18, &JitIL::Default}, //"fdivx",    OPTYPE_FPU, FL_RC_BIT_F, 30}},
-	{20, &JitIL::Default}, //"fsubx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{21, &JitIL::Default}, //"faddx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{22, &JitIL::Default}, //"fsqrtx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{23, &JitIL::Default}, //"fselx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{25, &JitIL::fp_arith_s}, //"fmulx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{26, &JitIL::fp_arith_s}, //"frsqrtex", OPTYPE_FPU, FL_RC_BIT_F}},
-	{28, &JitIL::fmaddXX}, //"fmsubx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{29, &JitIL::fmaddXX}, //"fmaddx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{30, &JitIL::fmaddXX}, //"fnmsubx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{31, &JitIL::fmaddXX}, //"fnmaddx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 18}, //"fdivx",    OPTYPE_FPU, FL_RC_BIT_F, 30}},
+	{&JitIL::Default, 20}, //"fsubx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 21}, //"faddx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 22}, //"fsqrtx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::Default, 23}, //"fselx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fp_arith_s, 25}, //"fmulx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fp_arith_s, 26}, //"frsqrtex", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 28}, //"fmsubx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 29}, //"fmaddx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 30}, //"fnmsubx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&JitIL::fmaddXX, 31}, //"fnmaddx",  OPTYPE_FPU, FL_RC_BIT_F}},
 };
 
 namespace JitILTables
Index: Source/Core/Core/Src/PowerPC/Jit64/Jit64_Tables.cpp
===================================================================
--- Source/Core/Core/Src/PowerPC/Jit64/Jit64_Tables.cpp	(revision 6246)
+++ Source/Core/Core/Src/PowerPC/Jit64/Jit64_Tables.cpp	(working copy)
@@ -35,342 +35,342 @@
 
 struct GekkoOPTemplate
 {
+	_Instruction Inst;
 	int opcode;
-	_Instruction Inst;
 	//GekkoOPInfo opinfo; // Doesn't need opinfo, Interpreter fills it out
 	int runCount;
 };
 
 static GekkoOPTemplate primarytable[] = 
 {
-	{4,  &Jit64::DynaRunTable4}, //"RunTable4",  OPTYPE_SUBTABLE | (4<<24), 0}},
-	{19, &Jit64::DynaRunTable19}, //"RunTable19", OPTYPE_SUBTABLE | (19<<24), 0}},
-	{31, &Jit64::DynaRunTable31}, //"RunTable31", OPTYPE_SUBTABLE | (31<<24), 0}},
-	{59, &Jit64::DynaRunTable59}, //"RunTable59", OPTYPE_SUBTABLE | (59<<24), 0}},
-	{63, &Jit64::DynaRunTable63}, //"RunTable63", OPTYPE_SUBTABLE | (63<<24), 0}},
+	{&Jit64::DynaRunTable4, 4}, //"RunTable4",  OPTYPE_SUBTABLE | (4<<24), 0}},
+	{&Jit64::DynaRunTable19, 19}, //"RunTable19", OPTYPE_SUBTABLE | (19<<24), 0}},
+	{&Jit64::DynaRunTable31, 31}, //"RunTable31", OPTYPE_SUBTABLE | (31<<24), 0}},
+	{&Jit64::DynaRunTable59, 59}, //"RunTable59", OPTYPE_SUBTABLE | (59<<24), 0}},
+	{&Jit64::DynaRunTable63, 63}, //"RunTable63", OPTYPE_SUBTABLE | (63<<24), 0}},
 
-	{16, &Jit64::bcx}, //"bcx", OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{18, &Jit64::bx}, //"bx",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&Jit64::bcx, 16}, //"bcx", OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&Jit64::bx, 18}, //"bx",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
 
-	{1,  &Jit64::HLEFunction}, //"HLEFunction", OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{2,  &Jit64::Default}, //"DynaBlock",   OPTYPE_SYSTEM, 0}},
-	{3,  &Jit64::Default}, //"twi",         OPTYPE_SYSTEM, 0}},
-	{17, &Jit64::sc}, //"sc",          OPTYPE_SYSTEM, FL_ENDBLOCK, 1}},
+	{&Jit64::HLEFunction, 1}, //"HLEFunction", OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&Jit64::Default, 2}, //"DynaBlock",   OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 3}, //"twi",         OPTYPE_SYSTEM, 0}},
+	{&Jit64::sc, 17}, //"sc",          OPTYPE_SYSTEM, FL_ENDBLOCK, 1}},
 
-	{7,  &Jit64::mulli}, //"mulli",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_RC_BIT, 2}},
-	{8,  &Jit64::subfic}, //"subfic",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_A |	FL_SET_CA}},
-	{10, &Jit64::cmpXX}, //"cmpli",    OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
-	{11, &Jit64::cmpXX}, //"cmpi",     OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
-	{12, &Jit64::reg_imm}, //"addic",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CA}},
-	{13, &Jit64::reg_imm}, //"addic_rc", OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CR0}},
-	{14, &Jit64::reg_imm}, //"addi",     OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
-	{15, &Jit64::reg_imm}, //"addis",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
+	{&Jit64::mulli, 7}, //"mulli",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_RC_BIT, 2}},
+	{&Jit64::subfic, 8}, //"subfic",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_A |	FL_SET_CA}},
+	{&Jit64::cmpXX, 10}, //"cmpli",    OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
+	{&Jit64::cmpXX, 11}, //"cmpi",     OPTYPE_INTEGER, FL_IN_A | FL_SET_CRn}},
+	{&Jit64::reg_imm, 12}, //"addic",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CA}},
+	{&Jit64::reg_imm, 13}, //"addic_rc", OPTYPE_INTEGER, FL_OUT_D | FL_IN_A | FL_SET_CR0}},
+	{&Jit64::reg_imm, 14}, //"addi",     OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
+	{&Jit64::reg_imm, 15}, //"addis",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_A0}},
 
-	{20, &Jit64::rlwimix}, //"rlwimix",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_A | FL_IN_S | FL_RC_BIT}},
-	{21, &Jit64::rlwinmx}, //"rlwinmx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{23, &Jit64::rlwnmx}, //"rlwnmx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_IN_B | FL_RC_BIT}},
+	{&Jit64::rlwimix, 20}, //"rlwimix",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_A | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::rlwinmx, 21}, //"rlwinmx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::rlwnmx, 23}, //"rlwnmx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_IN_B | FL_RC_BIT}},
 
-	{24, &Jit64::reg_imm}, //"ori",      OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{25, &Jit64::reg_imm}, //"oris",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{26, &Jit64::reg_imm}, //"xori",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{27, &Jit64::reg_imm}, //"xoris",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
-	{28, &Jit64::reg_imm}, //"andi_rc",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
-	{29, &Jit64::reg_imm}, //"andis_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
+	{&Jit64::reg_imm, 24}, //"ori",      OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&Jit64::reg_imm, 25}, //"oris",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&Jit64::reg_imm, 26}, //"xori",     OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&Jit64::reg_imm, 27}, //"xoris",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_S}},
+	{&Jit64::reg_imm, 28}, //"andi_rc",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
+	{&Jit64::reg_imm, 29}, //"andis_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
 
-	{32, &Jit64::lXXx}, //"lwz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{33, &Jit64::lXXx}, //"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{34, &Jit64::lXXx}, //"lbz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{35, &Jit64::lXXx}, //"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{40, &Jit64::lXXx}, //"lhz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{41, &Jit64::lXXx}, //"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
-	{42, &Jit64::lXXx}, //"lha",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
-	{43, &Jit64::lXXx}, //"lhau", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&Jit64::lXXx, 32}, //"lwz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&Jit64::lXXx, 33}, //"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&Jit64::lXXx, 34}, //"lbz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&Jit64::lXXx, 35}, //"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&Jit64::lXXx, 40}, //"lhz",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&Jit64::lXXx, 41}, //"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
+	{&Jit64::lXXx, 42}, //"lha",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
+	{&Jit64::lXXx, 43}, //"lhau", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
 
-	{44, &Jit64::stX}, //"sth",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{45, &Jit64::stX}, //"sthu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
-	{36, &Jit64::stX}, //"stw",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{37, &Jit64::stX}, //"stwu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
-	{38, &Jit64::stX}, //"stb",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
-	{39, &Jit64::stX}, //"stbu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 44}, //"sth",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 45}, //"sthu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 36}, //"stw",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 37}, //"stwu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 38}, //"stb",  OPTYPE_STORE, FL_IN_A | FL_IN_S}},
+	{&Jit64::stX, 39}, //"stbu", OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_S}},
 
-	{46, &Jit64::lmw}, //"lmw",   OPTYPE_SYSTEM, FL_EVIL, 10}},
-	{47, &Jit64::stmw}, //"stmw",  OPTYPE_SYSTEM, FL_EVIL, 10}},
+	{&Jit64::lmw, 46}, //"lmw",   OPTYPE_SYSTEM, FL_EVIL, 10}},
+	{&Jit64::stmw, 47}, //"stmw",  OPTYPE_SYSTEM, FL_EVIL, 10}},
 
-	{48, &Jit64::lfs}, //"lfs",  OPTYPE_LOADFP, FL_IN_A}},
-	{49, &Jit64::Default}, //"lfsu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
-	{50, &Jit64::lfd}, //"lfd",  OPTYPE_LOADFP, FL_IN_A}},
-	{51, &Jit64::Default}, //"lfdu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
+	{&Jit64::lfs, 48}, //"lfs",  OPTYPE_LOADFP, FL_IN_A}},
+	{&Jit64::Default, 49}, //"lfsu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
+	{&Jit64::lfd, 50}, //"lfd",  OPTYPE_LOADFP, FL_IN_A}},
+	{&Jit64::Default, 51}, //"lfdu", OPTYPE_LOADFP, FL_OUT_A | FL_IN_A}},
 
-	{52, &Jit64::stfs}, //"stfs",  OPTYPE_STOREFP, FL_IN_A}},
-	{53, &Jit64::stfs}, //"stfsu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
-	{54, &Jit64::stfd}, //"stfd",  OPTYPE_STOREFP, FL_IN_A}},
-	{55, &Jit64::Default}, //"stfdu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
+	{&Jit64::stfs, 52}, //"stfs",  OPTYPE_STOREFP, FL_IN_A}},
+	{&Jit64::stfs, 53}, //"stfsu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
+	{&Jit64::stfd, 54}, //"stfd",  OPTYPE_STOREFP, FL_IN_A}},
+	{&Jit64::Default, 55}, //"stfdu", OPTYPE_STOREFP, FL_OUT_A | FL_IN_A}},
 
-	{56, &Jit64::psq_l}, //"psq_l",   OPTYPE_PS, FL_IN_A}},
-	{57, &Jit64::psq_l}, //"psq_lu",  OPTYPE_PS, FL_OUT_A | FL_IN_A}},
-	{60, &Jit64::psq_st}, //"psq_st",  OPTYPE_PS, FL_IN_A}},
-	{61, &Jit64::psq_st}, //"psq_stu", OPTYPE_PS, FL_OUT_A | FL_IN_A}},
+	{&Jit64::psq_l, 56}, //"psq_l",   OPTYPE_PS, FL_IN_A}},
+	{&Jit64::psq_l, 57}, //"psq_lu",  OPTYPE_PS, FL_OUT_A | FL_IN_A}},
+	{&Jit64::psq_st, 60}, //"psq_st",  OPTYPE_PS, FL_IN_A}},
+	{&Jit64::psq_st, 61}, //"psq_stu", OPTYPE_PS, FL_OUT_A | FL_IN_A}},
 
 	//missing: 0, 5, 6, 9, 22, 30, 62, 58
-	{0,  &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{5,  &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{6,  &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{9,  &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{22, &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{30, &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{62, &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
-	{58, &Jit64::Default}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 0}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 5}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 6}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 9}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 22}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 30}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 62}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
+	{&Jit64::Default, 58}, //"unknown_instruction", OPTYPE_UNKNOWN, 0}},
 };
 
 static GekkoOPTemplate table4[] = 
 {    //SUBOP10
-	{0,    &Jit64::Default}, //"ps_cmpu0",   OPTYPE_PS, FL_SET_CRn}},
-	{32,   &Jit64::Default}, //"ps_cmpo0",   OPTYPE_PS, FL_SET_CRn}},
-	{40,   &Jit64::ps_sign}, //"ps_neg",     OPTYPE_PS, FL_RC_BIT}},
-	{136,  &Jit64::ps_sign}, //"ps_nabs",    OPTYPE_PS, FL_RC_BIT}},
-	{264,  &Jit64::ps_sign}, //"ps_abs",     OPTYPE_PS, FL_RC_BIT}},
-	{64,   &Jit64::Default}, //"ps_cmpu1",   OPTYPE_PS, FL_RC_BIT}},
-	{72,   &Jit64::ps_mr}, //"ps_mr",      OPTYPE_PS, FL_RC_BIT}},
-	{96,   &Jit64::Default}, //"ps_cmpo1",   OPTYPE_PS, FL_RC_BIT}},
-	{528,  &Jit64::ps_mergeXX}, //"ps_merge00", OPTYPE_PS, FL_RC_BIT}},
-	{560,  &Jit64::ps_mergeXX}, //"ps_merge01", OPTYPE_PS, FL_RC_BIT}},
-	{592,  &Jit64::ps_mergeXX}, //"ps_merge10", OPTYPE_PS, FL_RC_BIT}},
-	{624,  &Jit64::ps_mergeXX}, //"ps_merge11", OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::Default, 0}, //"ps_cmpu0",   OPTYPE_PS, FL_SET_CRn}},
+	{&Jit64::Default, 32}, //"ps_cmpo0",   OPTYPE_PS, FL_SET_CRn}},
+	{&Jit64::ps_sign, 40}, //"ps_neg",     OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_sign, 136}, //"ps_nabs",    OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_sign, 264}, //"ps_abs",     OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::Default, 64}, //"ps_cmpu1",   OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_mr, 72}, //"ps_mr",      OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::Default, 96}, //"ps_cmpo1",   OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_mergeXX, 528}, //"ps_merge00", OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_mergeXX, 560}, //"ps_merge01", OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_mergeXX, 592}, //"ps_merge10", OPTYPE_PS, FL_RC_BIT}},
+	{&Jit64::ps_mergeXX, 624}, //"ps_merge11", OPTYPE_PS, FL_RC_BIT}},
 
-	{1014, &Jit64::Default}, //"dcbz_l",     OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 1014}, //"dcbz_l",     OPTYPE_SYSTEM, 0}},
 };		
 
 static GekkoOPTemplate table4_2[] = 
 {
-	{10, &Jit64::ps_sum}, //"ps_sum0",   OPTYPE_PS, 0}},
-	{11, &Jit64::ps_sum}, //"ps_sum1",   OPTYPE_PS, 0}},
-	{12, &Jit64::ps_muls}, //"ps_muls0",  OPTYPE_PS, 0}},
-	{13, &Jit64::ps_muls}, //"ps_muls1",  OPTYPE_PS, 0}},
-	{14, &Jit64::ps_maddXX}, //"ps_madds0", OPTYPE_PS, 0}},
-	{15, &Jit64::ps_maddXX}, //"ps_madds1", OPTYPE_PS, 0}},
-	{18, &Jit64::ps_arith}, //"ps_div",    OPTYPE_PS, 0, 16}},
-	{20, &Jit64::ps_arith}, //"ps_sub",    OPTYPE_PS, 0}},
-	{21, &Jit64::ps_arith}, //"ps_add",    OPTYPE_PS, 0}},
-	{23, &Jit64::ps_sel}, //"ps_sel",    OPTYPE_PS, 0}},
-	{24, &Jit64::Default}, //"ps_res",    OPTYPE_PS, 0}},
-	{25, &Jit64::ps_arith}, //"ps_mul",    OPTYPE_PS, 0}},
-	{26, &Jit64::ps_rsqrte}, //"ps_rsqrte", OPTYPE_PS, 0, 1}},
-	{28, &Jit64::ps_maddXX}, //"ps_msub",   OPTYPE_PS, 0}},
-	{29, &Jit64::ps_maddXX}, //"ps_madd",   OPTYPE_PS, 0}},
-	{30, &Jit64::ps_maddXX}, //"ps_nmsub",  OPTYPE_PS, 0}},
-	{31, &Jit64::ps_maddXX}, //"ps_nmadd",  OPTYPE_PS, 0}},
+	{&Jit64::ps_sum, 10}, //"ps_sum0",   OPTYPE_PS, 0}},
+	{&Jit64::ps_sum, 11}, //"ps_sum1",   OPTYPE_PS, 0}},
+	{&Jit64::ps_muls, 12}, //"ps_muls0",  OPTYPE_PS, 0}},
+	{&Jit64::ps_muls, 13}, //"ps_muls1",  OPTYPE_PS, 0}},
+	{&Jit64::ps_maddXX, 14}, //"ps_madds0", OPTYPE_PS, 0}},
+	{&Jit64::ps_maddXX, 15}, //"ps_madds1", OPTYPE_PS, 0}},
+	{&Jit64::ps_arith, 18}, //"ps_div",    OPTYPE_PS, 0, 16}},
+	{&Jit64::ps_arith, 20}, //"ps_sub",    OPTYPE_PS, 0}},
+	{&Jit64::ps_arith, 21}, //"ps_add",    OPTYPE_PS, 0}},
+	{&Jit64::ps_sel, 23}, //"ps_sel",    OPTYPE_PS, 0}},
+	{&Jit64::Default, 24}, //"ps_res",    OPTYPE_PS, 0}},
+	{&Jit64::ps_arith, 25}, //"ps_mul",    OPTYPE_PS, 0}},
+	{&Jit64::ps_rsqrte, 26}, //"ps_rsqrte", OPTYPE_PS, 0, 1}},
+	{&Jit64::ps_maddXX, 28}, //"ps_msub",   OPTYPE_PS, 0}},
+	{&Jit64::ps_maddXX, 29}, //"ps_madd",   OPTYPE_PS, 0}},
+	{&Jit64::ps_maddXX, 30}, //"ps_nmsub",  OPTYPE_PS, 0}},
+	{&Jit64::ps_maddXX, 31}, //"ps_nmadd",  OPTYPE_PS, 0}},
 };
 
 
 static GekkoOPTemplate table4_3[] = 
 {
-	{6,  &Jit64::Default}, //"psq_lx",   OPTYPE_PS, 0}},
-	{7,  &Jit64::Default}, //"psq_stx",  OPTYPE_PS, 0}},
-	{38, &Jit64::Default}, //"psq_lux",  OPTYPE_PS, 0}},
-	{39, &Jit64::Default}, //"psq_stux", OPTYPE_PS, 0}}, 
+	{&Jit64::Default, 6}, //"psq_lx",   OPTYPE_PS, 0}},
+	{&Jit64::Default, 7}, //"psq_stx",  OPTYPE_PS, 0}},
+	{&Jit64::Default, 38}, //"psq_lux",  OPTYPE_PS, 0}},
+	{&Jit64::Default, 39}, //"psq_stux", OPTYPE_PS, 0}},
 };
 
 static GekkoOPTemplate table19[] = 
 {
-	{528, &Jit64::bcctrx}, //"bcctrx", OPTYPE_BRANCH, FL_ENDBLOCK}},
-	{16,  &Jit64::bclrx}, //"bclrx",  OPTYPE_BRANCH, FL_ENDBLOCK}},
-	{257, &Jit64::crXXX}, //"crand",  OPTYPE_CR, FL_EVIL}},
-	{129, &Jit64::crXXX}, //"crandc", OPTYPE_CR, FL_EVIL}},
-	{289, &Jit64::crXXX}, //"creqv",  OPTYPE_CR, FL_EVIL}},
-	{225, &Jit64::crXXX}, //"crnand", OPTYPE_CR, FL_EVIL}},
-	{33,  &Jit64::crXXX}, //"crnor",  OPTYPE_CR, FL_EVIL}},
-	{449, &Jit64::crXXX}, //"cror",   OPTYPE_CR, FL_EVIL}},
-	{417, &Jit64::crXXX}, //"crorc",  OPTYPE_CR, FL_EVIL}},
-	{193, &Jit64::crXXX}, //"crxor",  OPTYPE_CR, FL_EVIL}},
+	{&Jit64::bcctrx, 528}, //"bcctrx", OPTYPE_BRANCH, FL_ENDBLOCK}},
+	{&Jit64::bclrx, 16}, //"bclrx",  OPTYPE_BRANCH, FL_ENDBLOCK}},
+	{&Jit64::crXXX, 257}, //"crand",  OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 129}, //"crandc", OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 289}, //"creqv",  OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 225}, //"crnand", OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 33}, //"crnor",  OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 449}, //"cror",   OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 417}, //"crorc",  OPTYPE_CR, FL_EVIL}},
+	{&Jit64::crXXX, 193}, //"crxor",  OPTYPE_CR, FL_EVIL}},
 												   
-	{150, &Jit64::DoNothing}, //"isync",  OPTYPE_ICACHE, FL_EVIL}},
-	{0,   &Jit64::mcrf}, //"mcrf",   OPTYPE_SYSTEM, FL_EVIL}},
+	{&Jit64::DoNothing, 150}, //"isync",  OPTYPE_ICACHE, FL_EVIL}},
+	{&Jit64::mcrf, 0}, //"mcrf",   OPTYPE_SYSTEM, FL_EVIL}},
 												   
-	{50,  &Jit64::rfi}, //"rfi",    OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}},
-	{18,  &Jit64::Default}, //"rfid",   OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}}
+	{&Jit64::rfi, 50}, //"rfi",    OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}},
+	{&Jit64::Default, 18}, //"rfid",   OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}}
 };
 
 
 static GekkoOPTemplate table31[] = 
 {
-	{28,  &Jit64::boolX}, //"andx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{60,  &Jit64::boolX}, //"andcx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{444, &Jit64::boolX}, //"orx",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{124, &Jit64::boolX}, //"norx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{316, &Jit64::boolX}, //"xorx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{412, &Jit64::boolX}, //"orcx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{476, &Jit64::boolX}, //"nandx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{284, &Jit64::boolX}, //"eqvx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
-	{0,   &Jit64::cmpXX}, //"cmp",    OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
-	{32,  &Jit64::cmpXX}, //"cmpl",   OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
-	{26,  &Jit64::cntlzwx}, //"cntlzwx",OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{922, &Jit64::extshx}, //"extshx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{954, &Jit64::extsbx}, //"extsbx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
-	{536, &Jit64::srwx}, //"srwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{792, &Jit64::srawx}, //"srawx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{824, &Jit64::srawix}, //"srawix", OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
-	{24,  &Jit64::slwx}, //"slwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::boolX, 28}, //"andx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 60}, //"andcx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 444}, //"orx",    OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 124}, //"norx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 316}, //"xorx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 412}, //"orcx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 476}, //"nandx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::boolX, 284}, //"eqvx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
+	{&Jit64::cmpXX, 0}, //"cmp",    OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
+	{&Jit64::cmpXX, 32}, //"cmpl",   OPTYPE_INTEGER, FL_IN_AB | FL_SET_CRn}},
+	{&Jit64::cntlzwx, 26}, //"cntlzwx",OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::extshx, 922}, //"extshx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::extsbx, 954}, //"extsbx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::srwx, 536}, //"srwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::srawx, 792}, //"srawx",  OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::srawix, 824}, //"srawix", OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
+	{&Jit64::slwx, 24}, //"slwx",   OPTYPE_INTEGER, FL_OUT_A | FL_IN_B | FL_IN_S | FL_RC_BIT}},
 
-	{54,   &Jit64::Default}, //"dcbst",  OPTYPE_DCACHE, 0, 4}},
-	{86,   &Jit64::DoNothing}, //"dcbf",   OPTYPE_DCACHE, 0, 4}},
-	{246,  &Jit64::Default}, //"dcbtst", OPTYPE_DCACHE, 0, 1}},
-	{278,  &Jit64::Default}, //"dcbt",   OPTYPE_DCACHE, 0, 1}},
-	{470,  &Jit64::Default}, //"dcbi",   OPTYPE_DCACHE, 0, 4}},
-	{758,  &Jit64::Default}, //"dcba",   OPTYPE_DCACHE, 0, 4}},
-	{1014, &Jit64::dcbz}, //"dcbz",   OPTYPE_DCACHE, 0, 4}},
+	{&Jit64::Default, 54}, //"dcbst",  OPTYPE_DCACHE, 0, 4}},
+	{&Jit64::DoNothing, 86}, //"dcbf",   OPTYPE_DCACHE, 0, 4}},
+	{&Jit64::Default, 246}, //"dcbtst", OPTYPE_DCACHE, 0, 1}},
+	{&Jit64::Default, 278}, //"dcbt",   OPTYPE_DCACHE, 0, 1}},
+	{&Jit64::Default, 470}, //"dcbi",   OPTYPE_DCACHE, 0, 4}},
+	{&Jit64::Default, 758}, //"dcba",   OPTYPE_DCACHE, 0, 4}},
+	{&Jit64::dcbz, 1014}, //"dcbz",   OPTYPE_DCACHE, 0, 4}},
 
 	//load word
-	{23,  &Jit64::lXXx}, //"lwzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{55,  &Jit64::lXXx}, //"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::lXXx, 23}, //"lwzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::lXXx, 55}, //"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load halfword
-	{279, &Jit64::lXXx}, //"lhzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{311, &Jit64::lXXx}, //"lhzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::lXXx, 279}, //"lhzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::lXXx, 311}, //"lhzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load halfword signextend
-	{343, &Jit64::lXXx}, //"lhax",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{375, &Jit64::lXXx}, //"lhaux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::lXXx, 343}, //"lhax",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::lXXx, 375}, //"lhaux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load byte
-	{87,  &Jit64::lXXx}, //"lbzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{119, &Jit64::lXXx}, //"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::lXXx, 87}, //"lbzx",  OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::lXXx, 119}, //"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//load byte reverse
-	{534, &Jit64::Default}, //"lwbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
-	{790, &Jit64::Default}, //"lhbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 534}, //"lwbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 790}, //"lhbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
 
 	// Conditional load/store (Wii SMP)
-	{150, &Jit64::Default}, //"stwcxd", OPTYPE_STORE, FL_EVIL | FL_SET_CR0}},
-	{20,  &Jit64::Default}, //"lwarx",  OPTYPE_LOAD, FL_EVIL | FL_OUT_D | FL_IN_A0B | FL_SET_CR0}},
+	{&Jit64::Default, 150}, //"stwcxd", OPTYPE_STORE, FL_EVIL | FL_SET_CR0}},
+	{&Jit64::Default, 20}, //"lwarx",  OPTYPE_LOAD, FL_EVIL | FL_OUT_D | FL_IN_A0B | FL_SET_CR0}},
 
 	//load string (interpret these)
-	{533, &Jit64::Default}, //"lswx",  OPTYPE_LOAD, FL_EVIL | FL_IN_A | FL_OUT_D}},
-	{597, &Jit64::Default}, //"lswi",  OPTYPE_LOAD, FL_EVIL | FL_IN_AB | FL_OUT_D}},
+	{&Jit64::Default, 533}, //"lswx",  OPTYPE_LOAD, FL_EVIL | FL_IN_A | FL_OUT_D}},
+	{&Jit64::Default, 597}, //"lswi",  OPTYPE_LOAD, FL_EVIL | FL_IN_AB | FL_OUT_D}},
 
 	//store word
-	{151, &Jit64::stXx}, //"stwx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{183, &Jit64::stXx}, //"stwux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::stXx, 151}, //"stwx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::stXx, 183}, //"stwux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store halfword
-	{407, &Jit64::stXx}, //"sthx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{439, &Jit64::stXx}, //"sthux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::stXx, 407}, //"sthx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::stXx, 439}, //"sthux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store byte
-	{215, &Jit64::stXx}, //"stbx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{247, &Jit64::stXx}, //"stbux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
+	{&Jit64::stXx, 215}, //"stbx",   OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::stXx, 247}, //"stbux",  OPTYPE_STORE, FL_OUT_A | FL_IN_A | FL_IN_B}},
 
 	//store bytereverse
-	{662, &Jit64::Default}, //"stwbrx", OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
-	{918, &Jit64::Default}, //"sthbrx", OPTYPE_STORE, FL_IN_A | FL_IN_B}},
+	{&Jit64::Default, 662}, //"stwbrx", OPTYPE_STORE, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 918}, //"sthbrx", OPTYPE_STORE, FL_IN_A | FL_IN_B}},
 
-	{661, &Jit64::Default}, //"stswx",  OPTYPE_STORE, FL_EVIL}},
-	{725, &Jit64::Default}, //"stswi",  OPTYPE_STORE, FL_EVIL}},
+	{&Jit64::Default, 661}, //"stswx",  OPTYPE_STORE, FL_EVIL}},
+	{&Jit64::Default, 725}, //"stswi",  OPTYPE_STORE, FL_EVIL}},
 
 	// fp load/store	
-	{535, &Jit64::lfsx}, //"lfsx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
-	{567, &Jit64::Default}, //"lfsux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
-	{599, &Jit64::Default}, //"lfdx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
-	{631, &Jit64::Default}, //"lfdux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
+	{&Jit64::lfsx, 535}, //"lfsx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 567}, //"lfsux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
+	{&Jit64::Default, 599}, //"lfdx",  OPTYPE_LOADFP, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 631}, //"lfdux", OPTYPE_LOADFP, FL_IN_A | FL_IN_B}},
 
-	{663, &Jit64::stfsx}, //"stfsx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
-	{695, &Jit64::Default}, //"stfsux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
-	{727, &Jit64::Default}, //"stfdx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
-	{759, &Jit64::Default}, //"stfdux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
-	{983, &Jit64::Default}, //"stfiwx", OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::stfsx, 663}, //"stfsx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 695}, //"stfsux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
+	{&Jit64::Default, 727}, //"stfdx",  OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
+	{&Jit64::Default, 759}, //"stfdux", OPTYPE_STOREFP, FL_IN_A | FL_IN_B}},
+	{&Jit64::Default, 983}, //"stfiwx", OPTYPE_STOREFP, FL_IN_A0 | FL_IN_B}},
 
-	{19,  &Jit64::mfcr}, //"mfcr",   OPTYPE_SYSTEM, FL_OUT_D}},
-	{83,  &Jit64::mfmsr}, //"mfmsr",  OPTYPE_SYSTEM, FL_OUT_D}},
-	{144, &Jit64::mtcrf}, //"mtcrf",  OPTYPE_SYSTEM, 0}},
-	{146, &Jit64::mtmsr}, //"mtmsr",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
-	{210, &Jit64::Default}, //"mtsr",   OPTYPE_SYSTEM, 0}},
-	{242, &Jit64::Default}, //"mtsrin", OPTYPE_SYSTEM, 0}},
-	{339, &Jit64::mfspr}, //"mfspr",  OPTYPE_SPR, FL_OUT_D}},
-	{467, &Jit64::mtspr}, //"mtspr",  OPTYPE_SPR, 0, 2}},
-	{371, &Jit64::mftb}, //"mftb",   OPTYPE_SYSTEM, FL_OUT_D | FL_TIMER}},
-	{512, &Jit64::mcrxr}, //"mcrxr",  OPTYPE_SYSTEM, 0}},
-	{595, &Jit64::Default}, //"mfsr",   OPTYPE_SYSTEM, FL_OUT_D, 2}},
-	{659, &Jit64::Default}, //"mfsrin", OPTYPE_SYSTEM, FL_OUT_D, 2}},
+	{&Jit64::mfcr, 19}, //"mfcr",   OPTYPE_SYSTEM, FL_OUT_D}},
+	{&Jit64::mfmsr, 83}, //"mfmsr",  OPTYPE_SYSTEM, FL_OUT_D}},
+	{&Jit64::mtcrf, 144}, //"mtcrf",  OPTYPE_SYSTEM, 0}},
+	{&Jit64::mtmsr, 146}, //"mtmsr",  OPTYPE_SYSTEM, FL_ENDBLOCK}},
+	{&Jit64::Default, 210}, //"mtsr",   OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 242}, //"mtsrin", OPTYPE_SYSTEM, 0}},
+	{&Jit64::mfspr, 339}, //"mfspr",  OPTYPE_SPR, FL_OUT_D}},
+	{&Jit64::mtspr, 467}, //"mtspr",  OPTYPE_SPR, 0, 2}},
+	{&Jit64::mftb, 371}, //"mftb",   OPTYPE_SYSTEM, FL_OUT_D | FL_TIMER}},
+	{&Jit64::mcrxr, 512}, //"mcrxr",  OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 595}, //"mfsr",   OPTYPE_SYSTEM, FL_OUT_D, 2}},
+	{&Jit64::Default, 659}, //"mfsrin", OPTYPE_SYSTEM, FL_OUT_D, 2}},
 
-	{4,   &Jit64::Default}, //"tw",     OPTYPE_SYSTEM, 0, 1}},
-	{598, &Jit64::DoNothing}, //"sync",   OPTYPE_SYSTEM, 0, 2}},
-	{982, &Jit64::icbi}, //"icbi",   OPTYPE_SYSTEM, FL_ENDBLOCK, 3}},
+	{&Jit64::Default, 4}, //"tw",     OPTYPE_SYSTEM, 0, 1}},
+	{&Jit64::DoNothing, 598}, //"sync",   OPTYPE_SYSTEM, 0, 2}},
+	{&Jit64::icbi, 982}, //"icbi",   OPTYPE_SYSTEM, FL_ENDBLOCK, 3}},
 
 	// Unused instructions on GC
-	{310, &Jit64::Default}, //"eciwx",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{438, &Jit64::Default}, //"ecowx",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{854, &Jit64::Default}, //"eieio",   OPTYPE_INTEGER, FL_RC_BIT}},
-	{306, &Jit64::Default}, //"tlbie",   OPTYPE_SYSTEM, 0}},
-	{370, &Jit64::Default}, //"tlbia",   OPTYPE_SYSTEM, 0}},
-	{566, &Jit64::Default}, //"tlbsync", OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 310}, //"eciwx",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&Jit64::Default, 438}, //"ecowx",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&Jit64::Default, 854}, //"eieio",   OPTYPE_INTEGER, FL_RC_BIT}},
+	{&Jit64::Default, 306}, //"tlbie",   OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 370}, //"tlbia",   OPTYPE_SYSTEM, 0}},
+	{&Jit64::Default, 566}, //"tlbsync", OPTYPE_SYSTEM, 0}},
 };
 
 static GekkoOPTemplate table31_2[] = 
 {	
-	{266, &Jit64::addx}, //"addx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{10,  &Jit64::addcx}, //"addcx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
-	{138, &Jit64::addex}, //"addex",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{234, &Jit64::addmex}, //"addmex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{202, &Jit64::addzex}, //"addzex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{491, &Jit64::Default}, //"divwx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
-	{459, &Jit64::divwux}, //"divwux",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
-	{75,  &Jit64::Default}, //"mulhwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{11,  &Jit64::mulhwux}, //"mulhwux", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{235, &Jit64::mullwx}, //"mullwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
-	{104, &Jit64::negx}, //"negx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{40,  &Jit64::subfx}, //"subfx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
-	{8,   &Jit64::subfcx}, //"subfcx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
-	{136, &Jit64::subfex}, //"subfex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{232, &Jit64::subfmex}, //"subfmex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
-	{200, &Jit64::subfzex}, //"subfzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::addx, 266}, //"addx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&Jit64::addcx, 10}, //"addcx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::addex, 138}, //"addex",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::addmex, 234}, //"addmex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::addzex, 202}, //"addzex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::Default, 491}, //"divwx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
+	{&Jit64::divwux, 459}, //"divwux",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
+	{&Jit64::Default, 75}, //"mulhwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&Jit64::mulhwux, 11}, //"mulhwux", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&Jit64::mullwx, 235}, //"mullwx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
+	{&Jit64::negx, 104}, //"negx",    OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&Jit64::subfx, 40}, //"subfx",   OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT}},
+	{&Jit64::subfcx, 8}, //"subfcx",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::subfex, 136}, //"subfex",  OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::subfmex, 232}, //"subfmex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
+	{&Jit64::subfzex, 200}, //"subfzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
 };
 
 static GekkoOPTemplate table59[] = 
 {
-	{18, &Jit64::Default},       //{"fdivsx",   OPTYPE_FPU, FL_RC_BIT_F, 16}}, 
-	{20, &Jit64::fp_arith_s}, //"fsubsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{21, &Jit64::fp_arith_s}, //"faddsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-//	{22, &Jit64::Default}, //"fsqrtsx",  OPTYPE_FPU, FL_RC_BIT_F}}, // Not implemented on gekko
-	{24, &Jit64::Default}, //"fresx",    OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{25, &Jit64::fp_arith_s}, //"fmulsx",   OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{28, &Jit64::fmaddXX}, //"fmsubsx",  OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{29, &Jit64::fmaddXX}, //"fmaddsx",  OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{30, &Jit64::fmaddXX}, //"fnmsubsx", OPTYPE_FPU, FL_RC_BIT_F}}, 
-	{31, &Jit64::fmaddXX}, //"fnmaddsx", OPTYPE_FPU, FL_RC_BIT_F}}, 
+	{&Jit64::Default, 18},       //{"fdivsx",   OPTYPE_FPU, FL_RC_BIT_F, 16}},
+	{&Jit64::fp_arith_s, 20}, //"fsubsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fp_arith_s, 21}, //"faddsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+//	{&Jit64::Default, 22}, //"fsqrtsx",  OPTYPE_FPU, FL_RC_BIT_F}}, // Not implemented on gekko
+	{&Jit64::Default, 24}, //"fresx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fp_arith_s, 25}, //"fmulsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 28}, //"fmsubsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 29}, //"fmaddsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 30}, //"fnmsubsx", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 31}, //"fnmaddsx", OPTYPE_FPU, FL_RC_BIT_F}},
 };							    
 
 static GekkoOPTemplate table63[] = 
 {
-	{264, &Jit64::fsign},   //"fabsx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{32,  &Jit64::fcmpx},   //"fcmpo",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{0,   &Jit64::fcmpx},   //"fcmpu",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{14,  &Jit64::Default}, //"fctiwx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{15,  &Jit64::Default}, //"fctiwzx", OPTYPE_FPU, FL_RC_BIT_F}},
-	{72,  &Jit64::fmrx},    //"fmrx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{136, &Jit64::fsign},   //"fnabsx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{40,  &Jit64::fsign},   //"fnegx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{12,  &Jit64::Default}, //"frspx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fsign, 264},   //"fabsx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fcmpx, 32},   //"fcmpo",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fcmpx, 0},   //"fcmpu",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 14}, //"fctiwx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 15}, //"fctiwzx", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmrx, 72},    //"fmrx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fsign, 136},   //"fnabsx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fsign, 40},   //"fnegx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 12}, //"frspx",   OPTYPE_FPU, FL_RC_BIT_F}},
 
-	{64,  &Jit64::Default}, //"mcrfs",   OPTYPE_SYSTEMFP, 0}},
-	{583, &Jit64::Default}, //"mffsx",   OPTYPE_SYSTEMFP, 0}},
-	{70,  &Jit64::Default}, //"mtfsb0x", OPTYPE_SYSTEMFP, 0, 2}},
-	{38,  &Jit64::Default}, //"mtfsb1x", OPTYPE_SYSTEMFP, 0, 2}},
-	{134, &Jit64::Default}, //"mtfsfix", OPTYPE_SYSTEMFP, 0, 2}},
-	{711, &Jit64::Default}, //"mtfsfx",  OPTYPE_SYSTEMFP, 0, 2}},
+	{&Jit64::Default, 64}, //"mcrfs",   OPTYPE_SYSTEMFP, 0}},
+	{&Jit64::Default, 583}, //"mffsx",   OPTYPE_SYSTEMFP, 0}},
+	{&Jit64::Default, 70}, //"mtfsb0x", OPTYPE_SYSTEMFP, 0, 2}},
+	{&Jit64::Default, 38}, //"mtfsb1x", OPTYPE_SYSTEMFP, 0, 2}},
+	{&Jit64::Default, 134}, //"mtfsfix", OPTYPE_SYSTEMFP, 0, 2}},
+	{&Jit64::Default, 711}, //"mtfsfx",  OPTYPE_SYSTEMFP, 0, 2}},
 };
 
 static GekkoOPTemplate table63_2[] = 
 {
-	{18, &Jit64::Default}, //"fdivx",    OPTYPE_FPU, FL_RC_BIT_F, 30}},
-	{20, &Jit64::Default}, //"fsubx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{21, &Jit64::Default}, //"faddx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{22, &Jit64::Default}, //"fsqrtx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{23, &Jit64::Default}, //"fselx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{25, &Jit64::fp_arith_s}, //"fmulx",    OPTYPE_FPU, FL_RC_BIT_F}},
-	{26, &Jit64::fp_arith_s}, //"frsqrtex", OPTYPE_FPU, FL_RC_BIT_F}},
-	{28, &Jit64::fmaddXX}, //"fmsubx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{29, &Jit64::fmaddXX}, //"fmaddx",   OPTYPE_FPU, FL_RC_BIT_F}},
-	{30, &Jit64::fmaddXX}, //"fnmsubx",  OPTYPE_FPU, FL_RC_BIT_F}},
-	{31, &Jit64::fmaddXX}, //"fnmaddx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 18}, //"fdivx",    OPTYPE_FPU, FL_RC_BIT_F, 30}},
+	{&Jit64::Default, 20}, //"fsubx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 21}, //"faddx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 22}, //"fsqrtx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::Default, 23}, //"fselx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fp_arith_s, 25}, //"fmulx",    OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fp_arith_s, 26}, //"frsqrtex", OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 28}, //"fmsubx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 29}, //"fmaddx",   OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 30}, //"fnmsubx",  OPTYPE_FPU, FL_RC_BIT_F}},
+	{&Jit64::fmaddXX, 31}, //"fnmaddx",  OPTYPE_FPU, FL_RC_BIT_F}},
 };
 
 namespace Jit64Tables
