Merge pull request #5367 from degasus/arm

JitArm64: Drop ps_res instruction.
This commit is contained in:
Tilka 2017-05-04 00:31:48 +01:00 committed by GitHub
commit b0fdd81f45
5 changed files with 8 additions and 25 deletions

View File

@ -10,6 +10,7 @@
#include "Common/Analytics.h" #include "Common/Analytics.h"
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Common/StringUtil.h" #include "Common/StringUtil.h"
#include "Common/Thread.h"
namespace Common namespace Common
{ {
@ -147,6 +148,7 @@ void AnalyticsReporter::Send(AnalyticsReportBuilder&& report)
void AnalyticsReporter::ThreadProc() void AnalyticsReporter::ThreadProc()
{ {
Common::SetCurrentThreadName("Analytics");
while (true) while (true)
{ {
m_reporter_event.Wait(); m_reporter_event.Wait();

View File

@ -142,7 +142,6 @@ public:
void ps_maddXX(UGeckoInstruction inst); void ps_maddXX(UGeckoInstruction inst);
void ps_mergeXX(UGeckoInstruction inst); void ps_mergeXX(UGeckoInstruction inst);
void ps_mulsX(UGeckoInstruction inst); void ps_mulsX(UGeckoInstruction inst);
void ps_res(UGeckoInstruction inst);
void ps_sel(UGeckoInstruction inst); void ps_sel(UGeckoInstruction inst);
void ps_sumX(UGeckoInstruction inst); void ps_sumX(UGeckoInstruction inst);

View File

@ -152,29 +152,6 @@ void JitArm64::ps_maddXX(UGeckoInstruction inst)
fpr.Unlock(V0Q); fpr.Unlock(V0Q);
} }
void JitArm64::ps_res(UGeckoInstruction inst)
{
INSTRUCTION_START
JITDISABLE(bJITPairedOff);
FALLBACK_IF(inst.Rc);
FALLBACK_IF(SConfig::GetInstance().bFPRF && js.op->wantsFPRF);
u32 b = inst.FB, d = inst.FD;
bool singles = fpr.IsSingle(b);
RegType type = singles ? REG_REG_SINGLE : REG_REG;
u8 size = singles ? 32 : 64;
ARM64Reg (*reg_encoder)(ARM64Reg) = singles ? EncodeRegToDouble : EncodeRegToQuad;
ARM64Reg VB = fpr.R(b, type);
ARM64Reg VD = fpr.RW(d, type);
// FIXME: implement the same LUT as in the interpreter
m_float_emit.FRECPE(size, reg_encoder(VD), reg_encoder(VB));
fpr.FixSinglePrecision(d);
}
void JitArm64::ps_sel(UGeckoInstruction inst) void JitArm64::ps_sel(UGeckoInstruction inst)
{ {
INSTRUCTION_START INSTRUCTION_START

View File

@ -145,7 +145,7 @@ constexpr GekkoOPTemplate table4_2[] = {
{20, &JitArm64::fp_arith}, // ps_sub {20, &JitArm64::fp_arith}, // ps_sub
{21, &JitArm64::fp_arith}, // ps_add {21, &JitArm64::fp_arith}, // ps_add
{23, &JitArm64::ps_sel}, // ps_sel {23, &JitArm64::ps_sel}, // ps_sel
{24, &JitArm64::ps_res}, // ps_res {24, &JitArm64::FallBackToInterpreter}, // ps_res
{25, &JitArm64::fp_arith}, // ps_mul {25, &JitArm64::fp_arith}, // ps_mul
{26, &JitArm64::FallBackToInterpreter}, // ps_rsqrte {26, &JitArm64::FallBackToInterpreter}, // ps_rsqrte
{28, &JitArm64::ps_maddXX}, // ps_msub {28, &JitArm64::ps_maddXX}, // ps_msub

View File

@ -84,6 +84,11 @@ static void APIENTRY ErrorCallback(GLenum source, GLenum type, GLuint id, GLenum
const char* s_source; const char* s_source;
const char* s_type; const char* s_type;
// Performance - DualCore driver performance warning:
// DualCore application thread syncing with server thread
if (id == 0x200b0)
return;
switch (source) switch (source)
{ {
case GL_DEBUG_SOURCE_API_ARB: case GL_DEBUG_SOURCE_API_ARB: