Merge pull request #12182 from JosJuice/jit64-ps-sum1

Jit64: Use MOVSD in ps_sum1 and ps_merge01
This commit is contained in:
Admiral H. Curtiss 2023-11-06 14:50:33 +01:00 committed by GitHub
commit 40bf452ac8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -59,22 +59,9 @@ void Jit64::ps_sum(UGeckoInstruction inst)
break; break;
case 11: // ps_sum1: {c.ps0, a.ps0 + b.ps1} case 11: // ps_sum1: {c.ps0, a.ps0 + b.ps1}
if (Rc.IsSimpleReg()) if (Rc.IsSimpleReg())
{ MOVSD(tmp, Rc);
if (cpu_info.bSSE4_1)
{
BLENDPD(tmp, Rc, 1);
}
else
{
MOVAPD(XMM0, Rc);
SHUFPD(XMM0, R(tmp), 2);
tmp = XMM0;
}
}
else else
{
MOVLPD(tmp, Rc); MOVLPD(tmp, Rc);
}
break; break;
default: default:
PanicAlertFmt("ps_sum WTF!!!"); PanicAlertFmt("ps_sum WTF!!!");
@ -143,7 +130,12 @@ void Jit64::ps_mergeXX(UGeckoInstruction inst)
avx_op(&XEmitter::VUNPCKLPD, &XEmitter::UNPCKLPD, Rd, Ra, Rb); avx_op(&XEmitter::VUNPCKLPD, &XEmitter::UNPCKLPD, Rd, Ra, Rb);
break; // 00 break; // 00
case 560: case 560:
avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 2); if (d != b)
avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 2);
else if (Ra.IsSimpleReg())
MOVSD(Rd, Ra);
else
MOVLPD(Rd, Ra);
break; // 01 break; // 01
case 592: case 592:
avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 1); avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 1);