Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[ARM] Fixes the ps_merge00 and ps_merge10 implementations. They both …
…had the potential to overwrite the source registers in the moves.
  • Loading branch information
Sonicadvance1 committed Sep 12, 2013
1 parent 749b62f commit 8882d27
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions Source/Core/Core/Src/PowerPC/JitArm32/JitArm_Paired.cpp
Expand Up @@ -234,8 +234,9 @@ void JitArm::ps_merge00(UGeckoInstruction inst)
ARMReg vB0 = fpr.R0(b);
ARMReg vD0 = fpr.R0(d, false);
ARMReg vD1 = fpr.R1(d, false);
VMOV(vD0, vA0);

VMOV(vD1, vB0);
VMOV(vD0, vA0);
}

void JitArm::ps_merge01(UGeckoInstruction inst)
Expand Down Expand Up @@ -268,8 +269,13 @@ void JitArm::ps_merge10(UGeckoInstruction inst)
ARMReg vB0 = fpr.R0(b);
ARMReg vD0 = fpr.R0(d, false);
ARMReg vD1 = fpr.R1(d, false);
ARMReg V0 = fpr.GetReg();

VMOV(V0, vB0);
VMOV(vD0, vA1);
VMOV(vD1, vB0);
VMOV(vD1, V0);

fpr.Unlock(V0);
}

void JitArm::ps_merge11(UGeckoInstruction inst)
Expand Down

0 comments on commit 8882d27

Please sign in to comment.