mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-26 15:55:31 +01:00
Jit_FloatingPoint: fsign
This commit is contained in:
parent
537eeb7ebf
commit
d62ca40496
@ -380,29 +380,28 @@ void Jit64::fsign(UGeckoInstruction inst)
|
|||||||
int b = inst.FB;
|
int b = inst.FB;
|
||||||
bool packed = inst.OPCD == 4;
|
bool packed = inst.OPCD == 4;
|
||||||
|
|
||||||
fpr.Lock(b, d);
|
RCOpArg src = fpr.Use(b, RCMode::Read);
|
||||||
OpArg src = fpr.R(b);
|
RCX64Reg Rd = fpr.Bind(d, RCMode::Write);
|
||||||
fpr.BindToRegister(d, false);
|
RegCache::Realize(src, Rd);
|
||||||
|
|
||||||
switch (inst.SUBOP10)
|
switch (inst.SUBOP10)
|
||||||
{
|
{
|
||||||
case 40: // neg
|
case 40: // neg
|
||||||
avx_op(&XEmitter::VXORPD, &XEmitter::XORPD, fpr.RX(d), src,
|
avx_op(&XEmitter::VXORPD, &XEmitter::XORPD, Rd, src, MConst(packed ? psSignBits2 : psSignBits),
|
||||||
MConst(packed ? psSignBits2 : psSignBits), packed);
|
packed);
|
||||||
break;
|
break;
|
||||||
case 136: // nabs
|
case 136: // nabs
|
||||||
avx_op(&XEmitter::VORPD, &XEmitter::ORPD, fpr.RX(d), src,
|
avx_op(&XEmitter::VORPD, &XEmitter::ORPD, Rd, src, MConst(packed ? psSignBits2 : psSignBits),
|
||||||
MConst(packed ? psSignBits2 : psSignBits), packed);
|
packed);
|
||||||
break;
|
break;
|
||||||
case 264: // abs
|
case 264: // abs
|
||||||
avx_op(&XEmitter::VANDPD, &XEmitter::ANDPD, fpr.RX(d), src,
|
avx_op(&XEmitter::VANDPD, &XEmitter::ANDPD, Rd, src, MConst(packed ? psAbsMask2 : psAbsMask),
|
||||||
MConst(packed ? psAbsMask2 : psAbsMask), packed);
|
packed);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PanicAlert("fsign bleh");
|
PanicAlert("fsign bleh");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
fpr.UnlockAll();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit64::fselx(UGeckoInstruction inst)
|
void Jit64::fselx(UGeckoInstruction inst)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user