mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Merge pull request #5367 from degasus/arm
JitArm64: Drop ps_res instruction.
This commit is contained in:
commit
b0fdd81f45
@ -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();
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user