mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-06 21:40:05 +00:00
Implement and use MOVZX(64, 32,...)
Probably better to keep that same-register-MOV assert useful. Also, explicit type extension documents whats happening. Internally, this boils down to the original MOV, but without the assert.
This commit is contained in:
parent
701b5916ab
commit
6b5b8ab5be
@ -768,6 +768,10 @@ void XEmitter::MOVZX(int dbits, int sbits, X64Reg dest, OpArg src)
|
|||||||
Write8(0x0F);
|
Write8(0x0F);
|
||||||
Write8(0xB7);
|
Write8(0xB7);
|
||||||
}
|
}
|
||||||
|
else if (sbits == 32 && dbits == 64)
|
||||||
|
{
|
||||||
|
Write8(0x8B);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Crash();
|
Crash();
|
||||||
|
@ -1977,7 +1977,7 @@ void Jit64::slwx(UGeckoInstruction inst)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MOV(32, gpr.R(a), gpr.R(a));
|
MOVZX(64, 32, gpr.R(a).GetSimpleReg(), gpr.R(a));
|
||||||
}
|
}
|
||||||
gpr.UnlockAll();
|
gpr.UnlockAll();
|
||||||
gpr.UnlockAllX();
|
gpr.UnlockAllX();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user