summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorMarko Pusljar <LM1234@gmail.com>2011-04-14 10:14:04 +0000
committerMarko Pusljar <LM1234@gmail.com>2011-04-14 10:14:04 +0000
commit09042aa569f17445dffd5d81f5a08deeae1da00f (patch)
treecbd6e53e7f859a2c2fb3630b4e9596a6be4b619f /Source
parent92f200e87b70fd6bd9907e32ed9ed64e28ecff83 (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.cpp10
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));