Interpreter: simplify srawx/srawix

This also avoids -Wint-in-bool-context warnings in GCC 7.
This commit is contained in:
Tillmann Karras 2017-06-06 11:05:33 +01:00
parent 1113b131f2
commit 7702771d61
1 changed files with 6 additions and 28 deletions

View File

@ -356,21 +356,10 @@ void Interpreter::srawx(UGeckoInstruction inst)
else
{
int amount = rb & 0x1f;
if (amount == 0)
{
rGPR[inst.RA] = rGPR[inst.RS];
SetCarry(0);
}
else
{
s32 rrs = rGPR[inst.RS];
rGPR[inst.RA] = rrs >> amount;
if ((rrs < 0) && (rrs << (32 - amount)))
SetCarry(1);
else
SetCarry(0);
}
SetCarry(rrs < 0 && (u32(rrs) << (32 - amount)) != 0);
}
if (inst.Rc)
@ -381,21 +370,10 @@ void Interpreter::srawix(UGeckoInstruction inst)
{
int amount = inst.SH;
if (amount != 0)
{
s32 rrs = rGPR[inst.RS];
rGPR[inst.RA] = rrs >> amount;
if ((rrs < 0) && (rrs << (32 - amount)))
SetCarry(1);
else
SetCarry(0);
}
else
{
SetCarry(0);
rGPR[inst.RA] = rGPR[inst.RS];
}
SetCarry(rrs < 0 && (u32(rrs) << (32 - amount)) != 0);
if (inst.Rc)
Helper_UpdateCR0(rGPR[inst.RA]);