From 8dfb8d8ad5c94411c1370c20e5c1f9e89d95a057 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 2 Dec 2014 19:15:19 -0600 Subject: [PATCH] [AArch64] Implements HLE function injection --- Source/Core/Core/PowerPC/JitArm64/Jit.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index 4a94cec890..7ea0c16d65 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -59,8 +59,17 @@ void JitArm64::FallBackToInterpreter(UGeckoInstruction inst) void JitArm64::HLEFunction(UGeckoInstruction inst) { - WARN_LOG(DYNA_REC, "HLEFunction %08x - Fix me ;)", inst.hex); - exit(0); + gpr.Flush(FlushMode::FLUSH_ALL); + fpr.Flush(FlushMode::FLUSH_ALL); + + MOVI2R(W0, js.compilerPC); + MOVI2R(W1, inst.hex); + MOVI2R(X30, (u64)&HLE::Execute); + BLR(X30); + + ARM64Reg WA = gpr.GetReg(); + LDR(INDEX_UNSIGNED, WA, X29, PPCSTATE_OFF(npc)); + WriteExitDestInR(WA); } void JitArm64::DoNothing(UGeckoInstruction inst)