diff options
| author | JMC47 <JMC4789@gmail.com> | 2021-06-26 13:20:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-26 13:20:10 -0400 |
| commit | 52fb2fad4016a58aacfbcf11bdf517f4680cd1fb (patch) | |
| tree | 00ccfae767256be6879320662019e0354770c95e /Source/Core | |
| parent | c77a5f7e3246398aeb1d520d7bbc0bfdf5787754 (diff) | |
| parent | 7de4623d48bc03c9167258f7f38298e49240e875 (diff) | |
Merge pull request #9845 from Sintendo/jit64mtfsfx
Jit64: mtfsfx - Optimized masking
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp | 11 |
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) |
