diff options
| author | Marko Pusljar <LM1234@gmail.com> | 2011-04-14 10:14:04 +0000 |
|---|---|---|
| committer | Marko Pusljar <LM1234@gmail.com> | 2011-04-14 10:14:04 +0000 |
| commit | 09042aa569f17445dffd5d81f5a08deeae1da00f (patch) | |
| tree | cbd6e53e7f859a2c2fb3630b4e9596a6be4b619f /Source | |
| parent | 92f200e87b70fd6bd9907e32ed9ed64e28ecff83 (diff) | |
llejit - shift instructions should be correct now
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7458 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp index 88115c57e1..579b9c17e3 100644 --- a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp +++ b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp @@ -1401,7 +1401,7 @@ void DSPEmitter::asr16(const UDSPInstruction opc) // s64 acc = dsp_get_long_acc(areg); get_long_acc(areg); // acc >>= 16; - SHR(64, R(RAX), Imm8(16)); + SAR(64, R(RAX), Imm8(16)); // dsp_set_long_acc(areg, acc); set_long_acc(areg); // Update_SR_Register64(dsp_get_long_acc(areg)); @@ -1528,7 +1528,7 @@ void DSPEmitter::asr(const UDSPInstruction opc) // s64 acc = dsp_get_long_acc(dreg); get_long_acc(dreg); // acc >>= shift; - SHR(64, R(RAX), Imm8((u8)shift)); + SAR(64, R(RAX), Imm8((u8)shift)); // dsp_set_long_acc(dreg, acc); set_long_acc(dreg); @@ -1586,7 +1586,7 @@ void DSPEmitter::lsrn(const UDSPInstruction opc) SHL(64, R(RDX), R(RCX)); FixupBranch exit = J(); SetJumpTarget(shiftLeft); - SAR(64, R(RDX), R(RCX)); + SHR(64, R(RDX), R(RCX)); SetJumpTarget(noShift); SetJumpTarget(exit); @@ -1705,7 +1705,7 @@ void DSPEmitter::lsrnrx(const UDSPInstruction opc) FixupBranch shiftLeft = J_CC(CC_Z); NEG(16, R(RCX)); ADD(16, R(RCX), Imm16(0x40)); - SAR(64, R(RDX), R(RCX)); + SHR(64, R(RDX), R(RCX)); FixupBranch exit = J(); SetJumpTarget(shiftLeft); SHL(64, R(RDX), R(RCX)); @@ -1828,7 +1828,7 @@ void DSPEmitter::lsrnr(const UDSPInstruction opc) FixupBranch shiftLeft = J_CC(CC_Z); NEG(16, R(RCX)); ADD(16, R(RCX), Imm16(0x40)); - SAR(64, R(RDX), R(RCX)); + SHR(64, R(RDX), R(RCX)); FixupBranch exit = J(); SetJumpTarget(shiftLeft); SHL(64, R(RDX), R(RCX)); |
