Clean out includes in JitILCommon.

This commit is contained in:
Lioncash
2013-10-18 01:35:23 -04:00
parent 22cdc0f56e
commit 3360ec013f
9 changed files with 50 additions and 64 deletions

View File

@ -5,9 +5,16 @@
#ifndef _JITILBASE_H #ifndef _JITILBASE_H
#define _JITILBASE_H #define _JITILBASE_H
#include "../PPCAnalyst.h"
#include "IR.h" #include "IR.h"
#include "../PowerPC.h"
#include "../PPCAnalyst.h"
#include "../PPCTables.h"
#include "../JitCommon/JitBase.h" #include "../JitCommon/JitBase.h"
#include "../../ConfigManager.h"
#include "../../Core.h"
#include "../../CoreTiming.h"
#include "../../HW/GPFifo.h"
#include "../../HW/Memmap.h"
#define INSTRUCTION_START #define INSTRUCTION_START

View File

@ -3,14 +3,8 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../../ConfigManager.h"
#include "../PowerPC.h"
#include "../../CoreTiming.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
#include "../../HW/Memmap.h"
// The branches are known good, or at least reasonably good. // The branches are known good, or at least reasonably good.
// No need for a disable-mechanism. // No need for a disable-mechanism.

View File

@ -3,11 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../../Core.h"
#include "../PowerPC.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
void JitILBase::fp_arith_s(UGeckoInstruction inst) void JitILBase::fp_arith_s(UGeckoInstruction inst)

View File

@ -6,14 +6,10 @@
#pragma warning(disable:4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable:4146) // unary minus operator applied to unsigned type, result still unsigned
#endif #endif
#include "../../Core.h" // include "Common.h", "CoreParameter.h", SCoreStartupParameter
#include "../PowerPC.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
static void ComputeRC(IREmitter::IRBuilder& ibuild, static void ComputeRC(IREmitter::IRBuilder& ibuild, IREmitter::InstLoc val)
IREmitter::InstLoc val) { {
IREmitter::InstLoc res = IREmitter::InstLoc res =
ibuild.EmitICmpCRSigned(val, ibuild.EmitIntConst(0)); ibuild.EmitICmpCRSigned(val, ibuild.EmitIntConst(0));
ibuild.EmitStoreCR(res, 0); ibuild.EmitStoreCR(res, 0);
@ -93,20 +89,30 @@ void JitILBase::cmpXX(UGeckoInstruction inst)
JITDISABLE(bJITIntegerOff) JITDISABLE(bJITIntegerOff)
IREmitter::InstLoc lhs, rhs, res; IREmitter::InstLoc lhs, rhs, res;
lhs = ibuild.EmitLoadGReg(inst.RA); lhs = ibuild.EmitLoadGReg(inst.RA);
if (inst.OPCD == 31) {
if (inst.OPCD == 31)
{
rhs = ibuild.EmitLoadGReg(inst.RB); rhs = ibuild.EmitLoadGReg(inst.RB);
if (inst.SUBOP10 == 32) { if (inst.SUBOP10 == 32)
{
res = ibuild.EmitICmpCRUnsigned(lhs, rhs); res = ibuild.EmitICmpCRUnsigned(lhs, rhs);
} else { }
else
{
res = ibuild.EmitICmpCRSigned(lhs, rhs); res = ibuild.EmitICmpCRSigned(lhs, rhs);
} }
} else if (inst.OPCD == 10) { }
else if (inst.OPCD == 10)
{
rhs = ibuild.EmitIntConst(inst.UIMM); rhs = ibuild.EmitIntConst(inst.UIMM);
res = ibuild.EmitICmpCRUnsigned(lhs, rhs); res = ibuild.EmitICmpCRUnsigned(lhs, rhs);
} else { // inst.OPCD == 11 }
else // inst.OPCD == 11
{
rhs = ibuild.EmitIntConst(inst.SIMM_16); rhs = ibuild.EmitIntConst(inst.SIMM_16);
res = ibuild.EmitICmpCRSigned(lhs, rhs); res = ibuild.EmitICmpCRSigned(lhs, rhs);
} }
js.downcountAmount++; //TODO: should this be somewhere else? js.downcountAmount++; //TODO: should this be somewhere else?
ibuild.EmitStoreCR(res, inst.CRFD); ibuild.EmitStoreCR(res, inst.CRFD);
@ -194,14 +200,19 @@ void JitILBase::subfic(UGeckoInstruction inst)
IREmitter::InstLoc nota, lhs, val, test; IREmitter::InstLoc nota, lhs, val, test;
nota = ibuild.EmitXor(ibuild.EmitLoadGReg(inst.RA), nota = ibuild.EmitXor(ibuild.EmitLoadGReg(inst.RA),
ibuild.EmitIntConst(-1)); ibuild.EmitIntConst(-1));
if (inst.SIMM_16 == -1) {
if (inst.SIMM_16 == -1)
{
val = nota; val = nota;
test = ibuild.EmitIntConst(1); test = ibuild.EmitIntConst(1);
} else { }
else
{
lhs = ibuild.EmitIntConst(inst.SIMM_16 + 1); lhs = ibuild.EmitIntConst(inst.SIMM_16 + 1);
val = ibuild.EmitAdd(nota, lhs); val = ibuild.EmitAdd(nota, lhs);
test = ibuild.EmitICmpUgt(lhs, val); test = ibuild.EmitICmpUgt(lhs, val);
} }
ibuild.EmitStoreGReg(val, inst.RD); ibuild.EmitStoreGReg(val, inst.RD);
ibuild.EmitStoreCarry(test); ibuild.EmitStoreCarry(test);
} }
@ -290,17 +301,23 @@ void JitILBase::mulhwux(UGeckoInstruction inst)
} }
// skipped some of the special handling in here - if we get crashes, let the interpreter handle this op // skipped some of the special handling in here - if we get crashes, let the interpreter handle this op
void JitILBase::divwux(UGeckoInstruction inst) { void JitILBase::divwux(UGeckoInstruction inst)
{
Default(inst); return; Default(inst); return;
#if 0 #if 0
int a = inst.RA, b = inst.RB, d = inst.RD; int a = inst.RA, b = inst.RB, d = inst.RD;
gpr.FlushLockX(EDX); gpr.FlushLockX(EDX);
gpr.Lock(a, b, d); gpr.Lock(a, b, d);
if (d != a && d != b) {
if (d != a && d != b)
{
gpr.LoadToX64(d, false, true); gpr.LoadToX64(d, false, true);
} else { }
else
{
gpr.LoadToX64(d, true, true); gpr.LoadToX64(d, true, true);
} }
MOV(32, R(EAX), gpr.R(a)); MOV(32, R(EAX), gpr.R(a));
XOR(32, R(EDX), R(EDX)); XOR(32, R(EDX), R(EDX));
gpr.KillImmediate(b); gpr.KillImmediate(b);

View File

@ -3,13 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../PowerPC.h"
#include "../../Core.h"
#include "../../HW/GPFifo.h"
#include "../../HW/Memmap.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
void JitILBase::lhax(UGeckoInstruction inst) void JitILBase::lhax(UGeckoInstruction inst)
@ -46,7 +39,8 @@ void JitILBase::lXz(UGeckoInstruction inst)
ibuild.EmitStoreGReg(val, inst.RD); ibuild.EmitStoreGReg(val, inst.RD);
} }
void JitILBase::lbzu(UGeckoInstruction inst) { void JitILBase::lbzu(UGeckoInstruction inst)
{
INSTRUCTION_START INSTRUCTION_START
JITDISABLE(bJITLoadStoreOff) JITDISABLE(bJITLoadStoreOff)
const IREmitter::InstLoc uAddress = ibuild.EmitAdd(ibuild.EmitLoadGReg(inst.RA), ibuild.EmitIntConst((int)inst.SIMM_16)); const IREmitter::InstLoc uAddress = ibuild.EmitAdd(ibuild.EmitLoadGReg(inst.RA), ibuild.EmitIntConst((int)inst.SIMM_16));
@ -75,11 +69,14 @@ void JitILBase::lXzx(UGeckoInstruction inst)
JITDISABLE(bJITLoadStoreOff) JITDISABLE(bJITLoadStoreOff)
if (js.memcheck) { Default(inst); return; } if (js.memcheck) { Default(inst); return; }
IREmitter::InstLoc addr = ibuild.EmitLoadGReg(inst.RB); IREmitter::InstLoc addr = ibuild.EmitLoadGReg(inst.RB);
if (inst.RA) {
if (inst.RA)
{
addr = ibuild.EmitAdd(addr, ibuild.EmitLoadGReg(inst.RA)); addr = ibuild.EmitAdd(addr, ibuild.EmitLoadGReg(inst.RA));
if (inst.SUBOP10 & 32) if (inst.SUBOP10 & 32)
ibuild.EmitStoreGReg(addr, inst.RA); ibuild.EmitStoreGReg(addr, inst.RA);
} }
IREmitter::InstLoc val; IREmitter::InstLoc val;
switch (inst.SUBOP10 & ~32) switch (inst.SUBOP10 & ~32)
{ {

View File

@ -3,13 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../PowerPC.h"
#include "../../Core.h" // include "Common.h", "CoreParameter.h"
#include "../../HW/GPFifo.h"
#include "../../HW/Memmap.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
// TODO: Add peephole optimizations for multiple consecutive lfd/lfs/stfd/stfs since they are so common, // TODO: Add peephole optimizations for multiple consecutive lfd/lfs/stfd/stfs since they are so common,

View File

@ -3,13 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../PowerPC.h"
#include "../../Core.h"
#include "../../HW/GPFifo.h"
#include "../../HW/Memmap.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
void JitILBase::psq_st(UGeckoInstruction inst) void JitILBase::psq_st(UGeckoInstruction inst)

View File

@ -3,12 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../../Core.h"
#include "../PowerPC.h"
#include "../PPCTables.h"
#include "../../HW/GPFifo.h"
#include "JitILBase.h" #include "JitILBase.h"
void JitILBase::ps_mr(UGeckoInstruction inst) void JitILBase::ps_mr(UGeckoInstruction inst)

View File

@ -3,15 +3,11 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "Common.h" #include "Common.h"
#include "../../Core.h"
#include "../../CoreTiming.h"
#include "../../HW/SystemTimers.h"
#include "../PowerPC.h"
#include "../PPCTables.h"
#include "JitILBase.h" #include "JitILBase.h"
#include "../../HW/SystemTimers.h"
void JitILBase::mtspr(UGeckoInstruction inst) void JitILBase::mtspr(UGeckoInstruction inst)
{ {
INSTRUCTION_START INSTRUCTION_START