diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp index 723d237315..842b1c3de7 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp @@ -231,8 +231,7 @@ void Jit64::Shutdown() farcode.Shutdown(); } -// This is only called by FallBackToInterpreter() in this file. It will execute an instruction with the interpreter functions. -void Jit64::WriteCallInterpreter(UGeckoInstruction inst) +void Jit64::FallBackToInterpreter(UGeckoInstruction inst) { gpr.Flush(); fpr.Flush(); @@ -247,11 +246,6 @@ void Jit64::WriteCallInterpreter(UGeckoInstruction inst) ABI_PopRegistersAndAdjustStack({}, 0); } -void Jit64::FallBackToInterpreter(UGeckoInstruction _inst) -{ - WriteCallInterpreter(_inst.hex); -} - void Jit64::HLEFunction(UGeckoInstruction _inst) { gpr.Flush(); diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.h b/Source/Core/Core/PowerPC/Jit64/Jit.h index fe0376e921..12232edc76 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.h +++ b/Source/Core/Core/PowerPC/Jit64/Jit.h @@ -104,7 +104,6 @@ public: void WriteExceptionExit(); void WriteExternalExceptionExit(); void WriteRfiExitDestInRSCRATCH(); - void WriteCallInterpreter(UGeckoInstruction _inst); bool Cleanup(); void GenerateConstantOverflow(bool overflow); diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp index f94aea8b93..50769e69e5 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp @@ -633,7 +633,7 @@ void Jit64::frsqrtex(UGeckoInstruction inst) fpr.Lock(b, d); fpr.BindToRegister(d); MOVAPD(XMM0, fpr.R(b)); - CALL((void *)asm_routines.frsqrte); + CALL(asm_routines.frsqrte); MOVSD(fpr.R(d), XMM0); SetFPRFIfNeeded(fpr.RX(d)); fpr.UnlockAll(); @@ -652,7 +652,7 @@ void Jit64::fresx(UGeckoInstruction inst) fpr.Lock(b, d); fpr.BindToRegister(d); MOVAPD(XMM0, fpr.R(b)); - CALL((void *)asm_routines.fres); + CALL(asm_routines.fres); MOVSD(fpr.R(d), XMM0); SetFPRFIfNeeded(fpr.RX(d)); fpr.UnlockAll(); diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp index d438e172a1..e3e4c9ace8 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp @@ -154,11 +154,11 @@ void Jit64::ps_rsqrte(UGeckoInstruction inst) fpr.BindToRegister(d, false); MOVSD(XMM0, fpr.R(b)); - CALL((void *)asm_routines.frsqrte); + CALL(asm_routines.frsqrte); MOVSD(fpr.R(d), XMM0); MOVHLPS(XMM0, fpr.RX(b)); - CALL((void *)asm_routines.frsqrte); + CALL(asm_routines.frsqrte); MOVLHPS(fpr.RX(d), XMM0); ForceSinglePrecision(fpr.RX(d), fpr.R(d)); @@ -181,11 +181,11 @@ void Jit64::ps_res(UGeckoInstruction inst) fpr.BindToRegister(d, false); MOVSD(XMM0, fpr.R(b)); - CALL((void *)asm_routines.fres); + CALL(asm_routines.fres); MOVSD(fpr.R(d), XMM0); MOVHLPS(XMM0, fpr.RX(b)); - CALL((void *)asm_routines.fres); + CALL(asm_routines.fres); MOVLHPS(fpr.RX(d), XMM0); ForceSinglePrecision(fpr.RX(d), fpr.R(d)); diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp index d7c56fbe10..0f43cc2674 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp @@ -408,7 +408,7 @@ void Jit64::mfcr(UGeckoInstruction inst) JITDISABLE(bJITSystemRegistersOff); int d = inst.RD; gpr.FlushLockX(RSCRATCH_EXTRA); - CALL((void *)asm_routines.mfcr); + CALL(asm_routines.mfcr); gpr.Lock(d); gpr.BindToRegister(d, false, true); MOV(32, gpr.R(d), R(RSCRATCH)); diff --git a/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp b/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp index d457f6e766..c05c031d1c 100644 --- a/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp +++ b/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp @@ -288,23 +288,6 @@ void JitIL::Shutdown() farcode.Shutdown(); } - -void JitIL::WriteCallInterpreter(UGeckoInstruction inst) -{ - if (js.isLastInstruction) - { - MOV(32, PPCSTATE(pc), Imm32(js.compilerPC)); - MOV(32, PPCSTATE(npc), Imm32(js.compilerPC + 4)); - } - Interpreter::_interpreterInstruction instr = GetInterpreterOp(inst); - ABI_CallFunctionC((void*)instr, inst.hex); - if (js.isLastInstruction) - { - MOV(32, R(RSCRATCH), PPCSTATE(npc)); - WriteRfiExitDestInOpArg(R(RSCRATCH)); - } -} - void JitIL::FallBackToInterpreter(UGeckoInstruction _inst) { ibuild.EmitFallBackToInterpreter( diff --git a/Source/Core/Core/PowerPC/Jit64IL/JitIL.h b/Source/Core/Core/PowerPC/Jit64IL/JitIL.h index aaf5ea6569..3efb1f3905 100644 --- a/Source/Core/Core/PowerPC/Jit64IL/JitIL.h +++ b/Source/Core/Core/PowerPC/Jit64IL/JitIL.h @@ -82,7 +82,6 @@ public: void WriteExitDestInOpArg(const Gen::OpArg& arg); void WriteExceptionExit(); void WriteRfiExitDestInOpArg(const Gen::OpArg& arg); - void WriteCallInterpreter(UGeckoInstruction _inst); void Cleanup(); void WriteCode(u32 exitAddress); diff --git a/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp index bca1c1faed..2731a28600 100644 --- a/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp +++ b/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp @@ -453,16 +453,16 @@ void EmuCodeBlock::UnsafeWriteGatherPipe(int accessSize) switch (accessSize) { case 8: - CALL((void *)jit->GetAsmRoutines()->fifoDirectWrite8); + CALL(jit->GetAsmRoutines()->fifoDirectWrite8); break; case 16: - CALL((void *)jit->GetAsmRoutines()->fifoDirectWrite16); + CALL(jit->GetAsmRoutines()->fifoDirectWrite16); break; case 32: - CALL((void *)jit->GetAsmRoutines()->fifoDirectWrite32); + CALL(jit->GetAsmRoutines()->fifoDirectWrite32); break; case 64: - CALL((void *)jit->GetAsmRoutines()->fifoDirectWrite64); + CALL(jit->GetAsmRoutines()->fifoDirectWrite64); break; } jit->js.fifoBytesThisBlock += accessSize >> 3;