ee22517d92
* Add Compare instruction * Add BranchIf instruction * Use test when BranchIf & Compare against 0 * Propagate Compare into BranchIfTrue/False use - Propagate Compare operations into their BranchIfTrue/False use and turn these into a BranchIf. - Clean up Comparison enum. * Replace BranchIfTrue/False with BranchIf * Use BranchIf in EmitPtPointerLoad - Using BranchIf early instead of BranchIfTrue/False improves LCQ and reduces the amount of work needed by the Optimizer. EmitPtPointerLoader was a/the big producer of BranchIfTrue/False. - Fix asserts firing when assembling BitwiseAnd because of type mismatch in EmitStoreExclusive. This is harmless and should not cause any diffs. * Increment PPTC interval version * Improve IRDumper for BranchIf & Compare * Use BranchIf in EmitNativeCall * Clean up * Do not emit test when immediately preceded by and
24 lines
578 B
C#
24 lines
578 B
C#
namespace ARMeilleure.IntermediateRepresentation
|
|
{
|
|
enum Comparison
|
|
{
|
|
Equal = 0,
|
|
NotEqual = 1,
|
|
Greater = 2,
|
|
LessOrEqual = 3,
|
|
GreaterUI = 4,
|
|
LessOrEqualUI = 5,
|
|
GreaterOrEqual = 6,
|
|
Less = 7,
|
|
GreaterOrEqualUI = 8,
|
|
LessUI = 9
|
|
}
|
|
|
|
static class ComparisonExtensions
|
|
{
|
|
public static Comparison Invert(this Comparison comp)
|
|
{
|
|
return (Comparison)((int)comp ^ 1);
|
|
}
|
|
}
|
|
}
|