mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Fixes some overzealous optimizations from ARMv7 BindToRegister.
We can't do it in rlw and friends. subfx had an inccorect check. Minor whitespace and reordering.
This commit is contained in:
@ -570,10 +570,10 @@ void JitArm::arith(UGeckoInstruction inst)
|
|||||||
ANDS(RA, RS, RB);
|
ANDS(RA, RS, RB);
|
||||||
break;
|
break;
|
||||||
case 40: // subfx
|
case 40: // subfx
|
||||||
gpr.BindToRegister(d, d == s || d == b);
|
gpr.BindToRegister(d, d == b || d == a);
|
||||||
RD = gpr.R(d);
|
RD = gpr.R(d);
|
||||||
RA = gpr.R(a);
|
|
||||||
RB = gpr.R(b);
|
RB = gpr.R(b);
|
||||||
|
RA = gpr.R(a);
|
||||||
SUBS(RD, RB, RA);
|
SUBS(RD, RB, RA);
|
||||||
break;
|
break;
|
||||||
case 60:
|
case 60:
|
||||||
@ -841,8 +841,8 @@ void JitArm::negx(UGeckoInstruction inst)
|
|||||||
JITDISABLE(bJITIntegerOff);
|
JITDISABLE(bJITIntegerOff);
|
||||||
|
|
||||||
gpr.BindToRegister(inst.RD, inst.RD == inst.RA);
|
gpr.BindToRegister(inst.RD, inst.RD == inst.RA);
|
||||||
ARMReg RA = gpr.R(inst.RA);
|
|
||||||
ARMReg RD = gpr.R(inst.RD);
|
ARMReg RD = gpr.R(inst.RD);
|
||||||
|
ARMReg RA = gpr.R(inst.RA);
|
||||||
|
|
||||||
RSB(RD, RA, 0);
|
RSB(RD, RA, 0);
|
||||||
if (inst.Rc)
|
if (inst.Rc)
|
||||||
@ -860,7 +860,6 @@ void JitArm::rlwimix(UGeckoInstruction inst)
|
|||||||
JITDISABLE(bJITIntegerOff);
|
JITDISABLE(bJITIntegerOff);
|
||||||
|
|
||||||
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
||||||
gpr.BindToRegister(inst.RA, inst.RA == inst.RS);
|
|
||||||
ARMReg RA = gpr.R(inst.RA);
|
ARMReg RA = gpr.R(inst.RA);
|
||||||
ARMReg RS = gpr.R(inst.RS);
|
ARMReg RS = gpr.R(inst.RS);
|
||||||
ARMReg rA = gpr.GetReg();
|
ARMReg rA = gpr.GetReg();
|
||||||
@ -883,7 +882,6 @@ void JitArm::rlwinmx(UGeckoInstruction inst)
|
|||||||
JITDISABLE(bJITIntegerOff);
|
JITDISABLE(bJITIntegerOff);
|
||||||
|
|
||||||
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
||||||
gpr.BindToRegister(inst.RA, inst.RA == inst.RS);
|
|
||||||
ARMReg RA = gpr.R(inst.RA);
|
ARMReg RA = gpr.R(inst.RA);
|
||||||
ARMReg RS = gpr.R(inst.RS);
|
ARMReg RS = gpr.R(inst.RS);
|
||||||
ARMReg rA = gpr.GetReg();
|
ARMReg rA = gpr.GetReg();
|
||||||
@ -904,7 +902,6 @@ void JitArm::rlwnmx(UGeckoInstruction inst)
|
|||||||
JITDISABLE(bJITIntegerOff);
|
JITDISABLE(bJITIntegerOff);
|
||||||
|
|
||||||
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
u32 mask = Helper_Mask(inst.MB,inst.ME);
|
||||||
gpr.BindToRegister(inst.RA, inst.RA == inst.RS || inst.RA == inst.RB);
|
|
||||||
ARMReg RA = gpr.R(inst.RA);
|
ARMReg RA = gpr.R(inst.RA);
|
||||||
ARMReg RS = gpr.R(inst.RS);
|
ARMReg RS = gpr.R(inst.RS);
|
||||||
ARMReg RB = gpr.R(inst.RB);
|
ARMReg RB = gpr.R(inst.RB);
|
||||||
|
Reference in New Issue
Block a user