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(0xB7);
|
||||
}
|
||||
else if (sbits == 32 && dbits == 64)
|
||||
{
|
||||
Write8(0x8B);
|
||||
}
|
||||
else
|
||||
{
|
||||
Crash();
|
||||
|
|
|
@ -1977,7 +1977,7 @@ void Jit64::slwx(UGeckoInstruction inst)
|
|||
}
|
||||
else
|
||||
{
|
||||
MOV(32, gpr.R(a), gpr.R(a));
|
||||
MOVZX(64, 32, gpr.R(a).GetSimpleReg(), gpr.R(a));
|
||||
}
|
||||
gpr.UnlockAll();
|
||||
gpr.UnlockAllX();
|
||||
|
|
Loading…
Reference in New Issue