diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp index e08a6ac57e..339d81b4e3 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp @@ -38,7 +38,7 @@ void DSPEmitter::ReJitConditional(const UDSPInstruction opc, case 0x3: // LE - Less Equal LEA(16, EDX, MScaled(EAX, SCALE_4, 0)); XOR(16, R(EAX), R(EDX)); - LEA(16, EAX, MScaled(EAX, SCALE_2, 0)); + ADD(16, R(EAX), R(EAX)); OR(16, R(EAX), R(EDX)); TEST(16, R(EAX), Imm16(0x10)); break; @@ -56,9 +56,9 @@ void DSPEmitter::ReJitConditional(const UDSPInstruction opc, break; case 0xa: // ? case 0xb: // ? - LEA(16, EDX, MScaled(EAX, SCALE_2, 0)); + LEA(16, EDX, MRegSum(EAX, EAX)); OR(16, R(EAX), R(EDX)); - LEA(16, EDX, MScaled(EDX, SCALE_8, 0)); + SHL(16, R(EDX), Imm8(3)); NOT(16, R(EAX)); OR(16, R(EAX), R(EDX)); TEST(16, R(EAX), Imm16(0x20)); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitMultiplier.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitMultiplier.cpp index 79e6252f12..63acadc559 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitMultiplier.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitMultiplier.cpp @@ -30,7 +30,7 @@ void DSPEmitter::multiply() TEST(16, sr_reg, Imm16(SR_MUL_MODIFY)); FixupBranch noMult2 = J_CC(CC_NZ); // prod <<= 1; - LEA(64, RAX, MRegSum(RAX, RAX)); + ADD(64, R(RAX), R(RAX)); SetJumpTarget(noMult2); m_gpr.PutReg(DSP_REG_SR, false); // return prod; @@ -130,7 +130,7 @@ void DSPEmitter::multiply_mulx(u8 axh0, u8 axh1) TEST(16, sr_reg, Imm16(SR_MUL_MODIFY)); FixupBranch noMult2 = J_CC(CC_NZ); // prod <<= 1; - LEA(64, RAX, MRegSum(RAX, RAX)); + ADD(64, R(RAX), R(RAX)); SetJumpTarget(noMult2); m_gpr.PutReg(DSP_REG_SR, false); // return prod;