Fix a regression exposed by my previous changes to rlwinm. Also, some
minor cleanup. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1643 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
42dc237d7f
commit
4aa693ea54
|
@ -673,20 +673,18 @@
|
||||||
int s = inst.RS;
|
int s = inst.RS;
|
||||||
if (gpr.R(s).IsImm() && !inst.Rc)
|
if (gpr.R(s).IsImm() && !inst.Rc)
|
||||||
{
|
{
|
||||||
unsigned mask = Helper_Mask(inst.MB, inst.ME);
|
|
||||||
unsigned result = gpr.R(s).offset;
|
unsigned result = gpr.R(s).offset;
|
||||||
if (inst.SH != 0)
|
if (inst.SH != 0)
|
||||||
result = (result << inst.SH) |
|
result = _rotl(result, inst.SH);
|
||||||
(result >> (32 - inst.SH));
|
result &= Helper_Mask(inst.MB, inst.ME);
|
||||||
result &= mask;
|
|
||||||
gpr.SetImmediate32(a, result);
|
gpr.SetImmediate32(a, result);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gpr.Lock(a, s);
|
||||||
|
gpr.LoadToX64(a, a == s);
|
||||||
if (a != s)
|
if (a != s)
|
||||||
{
|
{
|
||||||
gpr.Lock(a, s);
|
|
||||||
gpr.LoadToX64(a, false);
|
|
||||||
MOV(32, gpr.R(a), gpr.R(s));
|
MOV(32, gpr.R(a), gpr.R(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue