mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-13 18:30:32 +00:00
x86 jit: Use LEA to emulate addu but only when it can save a few bytes
This commit is contained in:
parent
1c78e29c79
commit
28ca8d4818
@ -31,7 +31,6 @@
|
||||
namespace Gen
|
||||
{
|
||||
|
||||
// TODO(ector): Add EAX special casing, for ever so slightly smaller code.
|
||||
struct NormalOpDef
|
||||
{
|
||||
u8 toRm8, toRm32, fromRm8, fromRm32, imm8, imm32, simm8, eaximm8, eaximm32, ext;
|
||||
|
@ -436,7 +436,14 @@ namespace MIPSComp
|
||||
|
||||
case 32: //R(rd) = R(rs) + R(rt); break; //add
|
||||
case 33: //R(rd) = R(rs) + R(rt); break; //addu
|
||||
CompTriArith(op, &XEmitter::ADD, &RType3_ImmAdd);
|
||||
if (rd != rs && rd != rt && gpr.R(rs).IsSimpleReg() && gpr.R(rt).IsSimpleReg()) {
|
||||
gpr.Lock(rt, rs, rd);
|
||||
gpr.MapReg(rd, false, true);
|
||||
LEA(32, gpr.RX(rd), MRegSum(gpr.RX(rs), gpr.RX(rt)));
|
||||
gpr.UnlockAll();
|
||||
} else {
|
||||
CompTriArith(op, &XEmitter::ADD, &RType3_ImmAdd);
|
||||
}
|
||||
break;
|
||||
case 34: //R(rd) = R(rs) - R(rt); break; //sub
|
||||
case 35: //R(rd) = R(rs) - R(rt); break; //subu
|
||||
|
Loading…
x
Reference in New Issue
Block a user