summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp
index c074fdd96a..7965aab6e7 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp
@@ -792,10 +792,13 @@ void Jit64::mtfsfx(UGeckoInstruction inst)
else
MOV(32, R(RSCRATCH), Rb);
- MOV(32, R(RSCRATCH2), PPCSTATE(fpscr));
- AND(32, R(RSCRATCH), Imm32(mask));
- AND(32, R(RSCRATCH2), Imm32(~mask));
- OR(32, R(RSCRATCH), R(RSCRATCH2));
+ if (mask != 0xFFFFFFFF)
+ {
+ MOV(32, R(RSCRATCH2), PPCSTATE(fpscr));
+ AND(32, R(RSCRATCH), Imm32(mask));
+ AND(32, R(RSCRATCH2), Imm32(~mask));
+ OR(32, R(RSCRATCH), R(RSCRATCH2));
+ }
MOV(32, PPCSTATE(fpscr), R(RSCRATCH));
if (inst.FM & 1)