mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-09-18 10:50:05 +00:00
JitArm64_Integer: subfzex - Optimize a == -1 with in-host carry
Before: 0x12800019 mov w25, #-0x1 ; =-1 0x7a1903fa ngcs w26, w25 0x1a9f37f8 cset w24, hs 0x390bd3b8 strb w24, [x29, #0x2f4] After: 0x1a9f37fa cset w26, hs
This commit is contained in:
@@ -1335,6 +1335,13 @@ void JitArm64::subfzex(UGeckoInstruction inst)
|
||||
CSETM(gpr.R(d), CC_CC);
|
||||
// Carry remains unchanged.
|
||||
}
|
||||
else if (gpr.IsImm(a, 0xFFFFFFFF) && js.carryFlag == CarryFlag::InHostCarry)
|
||||
{
|
||||
gpr.BindToRegister(d, false);
|
||||
// RD = ~(-1) + carry = 0 + carry = carry ? 1 : 0
|
||||
CSET(gpr.R(d), CC_CS);
|
||||
ComputeCarry(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
gpr.BindToRegister(d, d == a);
|
||||
|
||||
Reference in New Issue
Block a user