From 29cca5c84fc44302aaf44805fa475dddb91ffa2c Mon Sep 17 00:00:00 2001 From: Sintendo Date: Sat, 20 Sep 2014 16:25:02 +0200 Subject: [PATCH] Change fres/frsqrte jumps --- Source/Core/Core/PowerPC/JitCommon/JitAsmCommon.cpp | 13 +++++-------- 1 file 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);