| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using ARMeilleure.IntermediateRepresentation;
- using System;
- namespace ARMeilleure.CodeGen.Arm64
- {
- enum ArmCondition
- {
- Eq = 0,
- Ne = 1,
- GeUn = 2,
- LtUn = 3,
- Mi = 4,
- Pl = 5,
- Vs = 6,
- Vc = 7,
- GtUn = 8,
- LeUn = 9,
- Ge = 10,
- Lt = 11,
- Gt = 12,
- Le = 13,
- Al = 14,
- Nv = 15
- }
- static class ComparisonArm64Extensions
- {
- public static ArmCondition ToArmCondition(this Comparison comp)
- {
- return comp switch
- {
- Comparison.Equal => ArmCondition.Eq,
- Comparison.NotEqual => ArmCondition.Ne,
- Comparison.Greater => ArmCondition.Gt,
- Comparison.LessOrEqual => ArmCondition.Le,
- Comparison.GreaterUI => ArmCondition.GtUn,
- Comparison.LessOrEqualUI => ArmCondition.LeUn,
- Comparison.GreaterOrEqual => ArmCondition.Ge,
- Comparison.Less => ArmCondition.Lt,
- Comparison.GreaterOrEqualUI => ArmCondition.GeUn,
- Comparison.LessUI => ArmCondition.LtUn,
- _ => throw new ArgumentException(null, nameof(comp))
- };
- }
- }
- }
|