Jit64: srawix - Handle constant input register
Much like we did for srawx. This was already implemented on JitArm64. Before: B8 00 00 00 00 mov eax,0 8B F0 mov esi,eax C1 E8 1F shr eax,1Fh 23 C6 and eax,esi D1 FE sar esi,1 88 45 58 mov byte ptr [rbp+58h],al After: C6 45 58 00 mov byte ptr [rbp+58h],0
This commit is contained in:
parent
8ac40162da
commit
cb70d5ee4f
|
@ -1995,7 +1995,13 @@ void Jit64::srawix(UGeckoInstruction inst)
|
|||
int s = inst.RS;
|
||||
int amount = inst.SH;
|
||||
|
||||
if (amount != 0)
|
||||
if (gpr.IsImm(s))
|
||||
{
|
||||
s32 imm = gpr.SImm32(s);
|
||||
gpr.SetImmediate32(a, imm >> amount);
|
||||
FinalizeCarry(amount != 0 && imm < 0 && (u32(imm) << (32 - amount)));
|
||||
}
|
||||
else if (amount != 0)
|
||||
{
|
||||
RCX64Reg Ra = gpr.Bind(a, RCMode::Write);
|
||||
RCOpArg Rs = gpr.Use(s, RCMode::Read);
|
||||
|
|
Loading…
Reference in New Issue