PPCAnalyst: Remove CanSwapAdjacentOps's OPCD check
Other than the CR instructions, which we now analyze properly, all the covered instructions are not integer operations and also have either FL_ENDBLOCK or FL_EVIL set, so there are two other checks in CanSwapAdjacentOps that will reject them.
This commit is contained in:
parent
96d622bb61
commit
f494a3d9e8
|
@ -229,17 +229,6 @@ bool PPCAnalyzer::CanSwapAdjacentOps(const CodeOp& a, const CodeOp& b) const
|
||||||
if ((a_flags & (FL_SET_CA | FL_READ_CA)) && (b_flags & (FL_SET_CA | FL_READ_CA)))
|
if ((a_flags & (FL_SET_CA | FL_READ_CA)) && (b_flags & (FL_SET_CA | FL_READ_CA)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
switch (b.inst.OPCD)
|
|
||||||
{
|
|
||||||
case 16:
|
|
||||||
case 18:
|
|
||||||
// branches. Do not swap.
|
|
||||||
case 17: // sc
|
|
||||||
case 46: // lmw
|
|
||||||
case 19: // table19 - lots of tricky stuff
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// For now, only integer ops are acceptable.
|
// For now, only integer ops are acceptable.
|
||||||
if (b_info->type != OpType::Integer)
|
if (b_info->type != OpType::Integer)
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue