summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorSintendo <bram.speeckaert@gmail.com>2014-09-20 16:25:02 +0200
committerSintendo <bram.speeckaert@gmail.com>2014-09-24 21:58:01 +0200
commit29cca5c84fc44302aaf44805fa475dddb91ffa2c (patch)
tree1b2f867d1594dbf301e1cd10fb25b6b2fe22f24a /Source
parent0b6ec44e42c3320db46d79784c92af50afb114be (diff)
Change fres/frsqrte jumps
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp b/Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp
index 24f59e2701..cfb92bd466 100644
--- a/Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp
+++ b/Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp
@@ -96,19 +96,17 @@ void CommonAsmRoutines::GenFrsqrte()
SetJumpTarget(zero);
TEST(32, PPCSTATE(fpscr), Imm32(FPSCR_ZX));
FixupBranch skip_set_fx1 = J_CC(CC_NZ);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX));
- SetJumpTarget(skip_set_fx1);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_ZX));
+ OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX | FPSCR_ZX));
FixupBranch complex3 = J();
// Exception flags for negative input.
SetJumpTarget(negative);
TEST(32, PPCSTATE(fpscr), Imm32(FPSCR_VXSQRT));
FixupBranch skip_set_fx2 = J_CC(CC_NZ);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX));
- SetJumpTarget(skip_set_fx2);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_VXSQRT));
+ OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX | FPSCR_VXSQRT));
+ SetJumpTarget(skip_set_fx1);
+ SetJumpTarget(skip_set_fx2);
SetJumpTarget(complex1);
SetJumpTarget(complex2);
SetJumpTarget(complex3);
@@ -165,9 +163,8 @@ void CommonAsmRoutines::GenFres()
SetJumpTarget(zero);
TEST(32, PPCSTATE(fpscr), Imm32(FPSCR_ZX));
FixupBranch skip_set_fx1 = J_CC(CC_NZ);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX));
+ OR(32, PPCSTATE(fpscr), Imm32(FPSCR_FX | FPSCR_ZX));
SetJumpTarget(skip_set_fx1);
- OR(32, PPCSTATE(fpscr), Imm32(FPSCR_ZX));
SetJumpTarget(complex1);
SetJumpTarget(complex2);