Jit64: boolX - Special case and with 0xFFFFFFFF

Bitwise and with all ones doesn't accomplish much.

Before:
41 8B F5             mov         esi,r13d
83 E6 FF             and         esi,0FFFFFFFFh

After:
41 8B F5             mov         esi,r13d
This commit is contained in:
Sintendo
2021-01-26 22:34:03 +01:00
parent 34dbfd92db
commit b760a56a9a

View File

@ -722,7 +722,15 @@ void Jit64::boolX(UGeckoInstruction inst)
RCX64Reg Ra = gpr.Bind(a, RCMode::Write);
RegCache::Realize(Rj, Ra);
if (complement_b)
if (imm == 0xFFFFFFFF)
{
if (a != j)
MOV(32, Ra, Rj);
if (final_not || complement_b)
NOT(32, Ra);
needs_test = true;
}
else if (complement_b)
{
if (a != j)
MOV(32, Ra, Rj);
@ -734,12 +742,12 @@ void Jit64::boolX(UGeckoInstruction inst)
if (a != j)
MOV(32, Ra, Rj);
AND(32, Ra, Imm32(imm));
}
if (final_not)
{
NOT(32, Ra);
needs_test = true;
if (final_not)
{
NOT(32, Ra);
needs_test = true;
}
}
}
}