diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2022-06-05 19:33:28 -0700 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2022-06-05 19:34:31 -0700 |
| commit | d03b2774030d96e491f182de82fc33dea650a735 (patch) | |
| tree | 8a73a54cf9febe7bb0ef65dd090f45adbd59ec2e /Source/Core | |
| parent | 664663e8de7944585b2c936a283c70466917d861 (diff) | |
DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp index 79e2da9a91..7ba437484b 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp @@ -322,14 +322,14 @@ void DSPEmitter::HandleLoop() MOVZX(32, 16, ECX, M_SDSP_r_st(3)); TEST(32, R(RCX), R(RCX)); - FixupBranch rLoopCntG = J_CC(CC_LE, true); + FixupBranch rLoopCntG = J_CC(CC_E, true); CMP(16, R(RAX), Imm16(m_compile_pc - 1)); FixupBranch rLoopAddrG = J_CC(CC_NE, true); SUB(16, M_SDSP_r_st(3), Imm16(1)); CMP(16, M_SDSP_r_st(3), Imm16(0)); - FixupBranch loadStack = J_CC(CC_LE, true); + FixupBranch loadStack = J_CC(CC_E, true); MOVZX(32, 16, ECX, M_SDSP_r_st(0)); MOV(16, M_SDSP_pc(), R(RCX)); FixupBranch loopUpdated = J(true); |
