JitArm64_Tables: Eliminate usages of the JIT global

This commit is contained in:
Lioncash 2017-01-22 05:30:35 -05:00
parent b0605c24d3
commit b4e00115c5
3 changed files with 17 additions and 10 deletions

View File

@ -604,7 +604,7 @@ const u8* JitArm64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer* code_buf, JitB
js.firstFPInstructionFound = true;
}
JitArm64Tables::CompileInstruction(ops[i]);
JitArm64Tables::CompileInstruction(*this, ops[i]);
if (!MergeAllowedNextInstructions(1) || js.op[1].opinfo->type != OPTYPE_INTEGER)
FlushCarry();

View File

@ -2,9 +2,13 @@
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include "Core/PowerPC/JitArm64/Jit.h"
#include "Core/PowerPC/JitArm64/JitArm64_Tables.h"
#include "Core/PowerPC/Gekko.h"
#include "Core/PowerPC/JitArm64/Jit.h"
#include "Core/PowerPC/JitInterface.h"
#include "Core/PowerPC/PPCAnalyst.h"
#include "Core/PowerPC/PPCTables.h"
// Should be moved in to the Jit class
typedef void (JitArm64::*_Instruction)(UGeckoInstruction instCode);
@ -365,21 +369,20 @@ static GekkoOPTemplate table63_2[] = {
namespace JitArm64Tables
{
void CompileInstruction(PPCAnalyst::CodeOp& op)
void CompileInstruction(JitArm64& jit, PPCAnalyst::CodeOp& op)
{
JitArm64* jitarm = (JitArm64*)g_jit;
(jitarm->*dynaOpTable[op.inst.OPCD])(op.inst);
(jit.*dynaOpTable[op.inst.OPCD])(op.inst);
GekkoOPInfo* info = op.opinfo;
if (info)
{
#ifdef OPLOG
if (!strcmp(info->opname, OP_TO_LOG))
{ ///"mcrfs"
rsplocations.push_back(g_jit.js.compilerPC);
rsplocations.push_back(jit.js.compilerPC);
}
#endif
info->compileCount++;
info->lastUse = g_jit->js.compilerPC;
info->lastUse = jit.js.compilerPC;
}
}

View File

@ -4,11 +4,15 @@
#pragma once
#include "Core/PowerPC/Gekko.h"
#include "Core/PowerPC/PPCTables.h"
class JitArm64;
namespace PPCAnalyst
{
struct CodeOp;
}
namespace JitArm64Tables
{
void CompileInstruction(PPCAnalyst::CodeOp& op);
void CompileInstruction(JitArm64& jit, PPCAnalyst::CodeOp& op);
void InitTables();
}