From 82cd91e944a4c95dfff83be770b5d6b6c39c49d0 Mon Sep 17 00:00:00 2001 From: Pierre Date: Fri, 10 May 2013 20:07:58 +0200 Subject: [PATCH] DSPJIT: the shift value must still be loaded into the correct register Fixes issue 6295 --- Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp index 04cc3aa753..dbb185844e 100644 --- a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp +++ b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp @@ -1563,6 +1563,7 @@ void DSPEmitter::lsrn(const UDSPInstruction opc) FixupBranch noShift = J_CC(CC_Z); //CL gets automatically masked with 0x3f on IA32/AMD64 //MOVZX(64, 16, RCX, R(RAX)); + MOV(64, R(RCX), R(RAX)); //AND(16, R(RCX), Imm16(0x3f)); TEST(16, R(RAX), Imm16(0x40)); FixupBranch shiftLeft = J_CC(CC_Z);