Jit: Skip redundant flushes
This makes codegen faster (by perhaps 10-20% in the case of Jit64, I didn't measure too closely), which helps speed up NBA Live 2005 a little. But the game still has serious performance issues.
This commit is contained in:
parent
86dbf768b9
commit
fd511a689f
|
@ -1184,8 +1184,8 @@ bool Jit64::DoJit(u32 em_address, JitBlock* b, u32 nextPC)
|
|||
gpr.Discard(op.gprDiscardable);
|
||||
fpr.Discard(op.fprDiscardable);
|
||||
}
|
||||
gpr.Flush(~op.gprInUse);
|
||||
fpr.Flush(~op.fprInUse);
|
||||
gpr.Flush(~op.gprInUse & (op.regsIn | op.regsOut));
|
||||
fpr.Flush(~op.fprInUse & (op.fregsIn | op.GetFregsOut()));
|
||||
|
||||
if (opinfo->flags & FL_LOADSTORE)
|
||||
++js.numLoadStoreInst;
|
||||
|
|
|
@ -971,8 +971,8 @@ bool JitArm64::DoJit(u32 em_address, JitBlock* b, u32 nextPC)
|
|||
gpr.DiscardRegisters(op.gprDiscardable);
|
||||
fpr.DiscardRegisters(op.fprDiscardable);
|
||||
}
|
||||
gpr.StoreRegisters(~op.gprInUse);
|
||||
fpr.StoreRegisters(~op.fprInUse);
|
||||
gpr.StoreRegisters(~op.gprInUse & (op.regsIn | op.regsOut));
|
||||
fpr.StoreRegisters(~op.fprInUse & (op.fregsIn | op.GetFregsOut()));
|
||||
|
||||
if (opinfo->flags & FL_LOADSTORE)
|
||||
++js.numLoadStoreInst;
|
||||
|
|
Loading…
Reference in New Issue