Merge pull request #9818 from JosJuice/jits-cdts-double
Jits: Don't use fast double-to-single when input is double precision
This commit is contained in:
commit
a36855c983
|
@ -104,7 +104,7 @@ void Jit64::stfXXX(UGeckoInstruction inst)
|
||||||
|
|
||||||
if (single)
|
if (single)
|
||||||
{
|
{
|
||||||
if (js.fpr_is_store_safe[s])
|
if (js.fpr_is_store_safe[s] && js.op->fprIsSingle[s])
|
||||||
{
|
{
|
||||||
RCOpArg Rs = fpr.Use(s, RCMode::Read);
|
RCOpArg Rs = fpr.Use(s, RCMode::Read);
|
||||||
RegCache::Realize(Rs);
|
RegCache::Realize(Rs);
|
||||||
|
|
|
@ -606,7 +606,7 @@ void JitArm64::frsqrtex(UGeckoInstruction inst)
|
||||||
|
|
||||||
void JitArm64::ConvertDoubleToSingleLower(size_t guest_reg, ARM64Reg dest_reg, ARM64Reg src_reg)
|
void JitArm64::ConvertDoubleToSingleLower(size_t guest_reg, ARM64Reg dest_reg, ARM64Reg src_reg)
|
||||||
{
|
{
|
||||||
if (js.fpr_is_store_safe[guest_reg])
|
if (js.fpr_is_store_safe[guest_reg] && js.op->fprIsSingle[guest_reg])
|
||||||
{
|
{
|
||||||
m_float_emit.FCVT(32, 64, EncodeRegToDouble(dest_reg), EncodeRegToDouble(src_reg));
|
m_float_emit.FCVT(32, 64, EncodeRegToDouble(dest_reg), EncodeRegToDouble(src_reg));
|
||||||
return;
|
return;
|
||||||
|
@ -626,7 +626,7 @@ void JitArm64::ConvertDoubleToSingleLower(size_t guest_reg, ARM64Reg dest_reg, A
|
||||||
|
|
||||||
void JitArm64::ConvertDoubleToSinglePair(size_t guest_reg, ARM64Reg dest_reg, ARM64Reg src_reg)
|
void JitArm64::ConvertDoubleToSinglePair(size_t guest_reg, ARM64Reg dest_reg, ARM64Reg src_reg)
|
||||||
{
|
{
|
||||||
if (js.fpr_is_store_safe[guest_reg])
|
if (js.fpr_is_store_safe[guest_reg] && js.op->fprIsSingle[guest_reg])
|
||||||
{
|
{
|
||||||
m_float_emit.FCVTN(32, EncodeRegToDouble(dest_reg), EncodeRegToDouble(src_reg));
|
m_float_emit.FCVTN(32, EncodeRegToDouble(dest_reg), EncodeRegToDouble(src_reg));
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue