diff options
| author | Fiora <fioraaeterna@gmail.com> | 2014-11-28 16:11:04 -0800 |
|---|---|---|
| committer | Fiora <fioraaeterna@gmail.com> | 2014-11-28 16:11:04 -0800 |
| commit | d42305aba07efaf6b258effa22d0cdfdf2e8620a (patch) | |
| tree | e2c0a9e7bdaf1df4656cf8bae161a3b771b0be75 /Source | |
| parent | ce059769f6bf13118366f77fea926727efcf4510 (diff) | |
JIT: fix fcmp+cror merging bug
Destination CR bit needs to be cleared if it's not one of the sources.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp index 72f278434c..44992dc7fa 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp @@ -285,6 +285,7 @@ void Jit64::FloatCompare(UGeckoInstruction inst, bool upper) js.skipnext = true; js.downcountAmount++; int dst = 3 - (next.CRBD & 3); + output[3 - (next.CRBD & 3)] &= ~(1 << dst); output[3 - (next.CRBA & 3)] |= 1 << dst; output[3 - (next.CRBB & 3)] |= 1 << dst; } |
