From 22b47d5b9c078d978c0d71b0493509b5e30d0857 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Wed, 13 Nov 2013 05:58:28 +0100 Subject: [PATCH] Jit64: Fix and re-enable psq_l for W=1 Patch by konpie: https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735 --- .../Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp index e881b5e7e8..a2cb0784d1 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp @@ -122,12 +122,6 @@ void Jit64::psq_l(UGeckoInstruction inst) const UGQR gqr(rSPR(SPR_GQR0 + inst.I)); - if (inst.W) { - // PanicAlert("Single ps load: %i %i", gqr.ST_TYPE, gqr.ST_SCALE); - Default(inst); - return; - } - bool update = inst.OPCD == 57; int offset = inst.SIMM_12; @@ -143,6 +137,8 @@ void Jit64::psq_l(UGeckoInstruction inst) MOV(32, gpr.R(inst.RA), R(ECX)); MOVZX(32, 16, EAX, M(((char *)&GQR(inst.I)) + 2)); MOVZX(32, 8, EDX, R(AL)); + if (inst.W) + OR(32, R(EDX), Imm8(8)); #ifdef _M_IX86 int addr_scale = SCALE_4; #else