From 3be31ca2c88b0c2d2165b3926241e9934bdd993e Mon Sep 17 00:00:00 2001 From: Fiora Date: Wed, 15 Oct 2014 08:30:46 -0700 Subject: [PATCH] JIT: remove "accurate fcmp" option This doesn't seem to be necessary anymore now that FPRF is implemented in the JIT. Technically, this isn't the same as before, since the JIT doesn't implement the fcmp exception semantics, but as far as testing has shown, this doesn't seem necessary. This should make games that use FPRF a few percent faster (e.g. F-Zero GX) since fcmpx no longer has to be fallbacked. --- Source/Core/Core/PowerPC/Jit64/Jit.cpp | 1 - Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp | 1 - Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp | 1 - Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp | 1 - Source/Core/Core/PowerPC/JitCommon/JitBase.h | 1 - 5 files changed, 5 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp index 044529b175..f56f8eb1a3 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp @@ -176,7 +176,6 @@ void Jit64::Init() jo.optimizeStack = true; EnableBlockLink(); - jo.fpAccurateFcmp = SConfig::GetInstance().m_LocalCoreStartupParameter.bFPRF; jo.optimizeGatherPipe = true; jo.fastInterrupts = false; jo.accurateSinglePrecision = true; diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp index 72f278434c..3ea6f86057 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp @@ -369,7 +369,6 @@ void Jit64::fcmpx(UGeckoInstruction inst) { INSTRUCTION_START JITDISABLE(bJITFloatingPointOff); - FALLBACK_IF(jo.fpAccurateFcmp); FloatCompare(inst); } diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp index 6cb6a20cba..fe36351b25 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp @@ -386,7 +386,6 @@ void Jit64::ps_cmpXX(UGeckoInstruction inst) { INSTRUCTION_START JITDISABLE(bJITFloatingPointOff); - FALLBACK_IF(jo.fpAccurateFcmp); FloatCompare(inst, !!(inst.SUBOP10 & 64)); } diff --git a/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp b/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp index acb57f8a14..cbd7cf49fa 100644 --- a/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp +++ b/Source/Core/Core/PowerPC/Jit64IL/JitIL.cpp @@ -246,7 +246,6 @@ void JitIL::Init() jo.optimizeStack = true; EnableBlockLink(); - jo.fpAccurateFcmp = false; jo.optimizeGatherPipe = true; jo.fastInterrupts = false; jo.accurateSinglePrecision = false; diff --git a/Source/Core/Core/PowerPC/JitCommon/JitBase.h b/Source/Core/Core/PowerPC/JitCommon/JitBase.h index 845db78b01..f7279708d1 100644 --- a/Source/Core/Core/PowerPC/JitCommon/JitBase.h +++ b/Source/Core/Core/PowerPC/JitCommon/JitBase.h @@ -62,7 +62,6 @@ protected: { bool optimizeStack; bool enableBlocklink; - bool fpAccurateFcmp; bool optimizeGatherPipe; bool fastInterrupts; bool accurateSinglePrecision;