| Index: src/IceTargetLoweringARM32.def
|
| diff --git a/src/IceTargetLoweringARM32.def b/src/IceTargetLoweringARM32.def
|
| index a004cb66fd4ebfe2555837b77bed5e049b8c6112..95aa2559f69a96cf0da6c0547ca46c50159c5037 100644
|
| --- a/src/IceTargetLoweringARM32.def
|
| +++ b/src/IceTargetLoweringARM32.def
|
| @@ -15,19 +15,47 @@
|
| #ifndef SUBZERO_SRC_ICETARGETLOWERINGARM32_DEF
|
| #define SUBZERO_SRC_ICETARGETLOWERINGARM32_DEF
|
|
|
| +// Patterns for lowering fcmp. These are expected to be used in the following
|
| +// manner:
|
| +//
|
| +// mov reg, #0
|
| +// movCC0 reg, #1 /* only if CC0 != kNone */
|
| +// movCC1 reg, #1 /* only if CC1 != kNone */
|
| +//
|
| +// TODO(jpp): vector lowerings.
|
| +#define FCMPARM32_TABLE \
|
| + /* val, CC0, CC1 */ \
|
| + X(False, kNone, kNone) \
|
| + X(Oeq, EQ, kNone) \
|
| + X(Ogt, GT, kNone) \
|
| + X(Oge, GE, kNone) \
|
| + X(Olt, MI, kNone) \
|
| + X(Ole, LS, kNone) \
|
| + X(One, MI, GT) \
|
| + X(Ord, VC, kNone) \
|
| + X(Ueq, EQ, VS) \
|
| + X(Ugt, HI, kNone) \
|
| + X(Uge, PL, kNone) \
|
| + X(Ult, LT, kNone) \
|
| + X(Ule, LE, kNone) \
|
| + X(Une, NE, kNone) \
|
| + X(Uno, VS, kNone) \
|
| + X(True, AL, kNone) \
|
| +//#define X(val, CC0, CC1)
|
| +
|
| // Patterns for lowering icmp.
|
| -#define ICMPARM32_TABLE \
|
| - /* val, is_signed, swapped64, C_32, C1_64, C2_64 */ \
|
| - X(Eq, false, false, EQ, EQ, NE) \
|
| - X(Ne, false, false, NE, NE, EQ) \
|
| - X(Ugt, false, false, HI, HI, LS) \
|
| - X(Uge, false, false, CS, CS, CC) \
|
| - X(Ult, false, false, CC, CC, CS) \
|
| - X(Ule, false, false, LS, LS, HI) \
|
| - X(Sgt, true, true, GT, LT, GE) \
|
| - X(Sge, true, false, GE, GE, LT) \
|
| - X(Slt, true, false, LT, LT, GE) \
|
| - X(Sle, true, true, LE, GE, LT) \
|
| +#define ICMPARM32_TABLE \
|
| + /* val, is_signed, swapped64, C_32, C1_64, C2_64 */ \
|
| + X(Eq, false, false, EQ, EQ, NE) \
|
| + X(Ne, false, false, NE, NE, EQ) \
|
| + X(Ugt, false, false, HI, HI, LS) \
|
| + X(Uge, false, false, CS, CS, CC) \
|
| + X(Ult, false, false, CC, CC, CS) \
|
| + X(Ule, false, false, LS, LS, HI) \
|
| + X(Sgt, true, true, GT, LT, GE) \
|
| + X(Sge, true, false, GE, GE, LT) \
|
| + X(Slt, true, false, LT, LT, GE) \
|
| + X(Sle, true, true, LE, GE, LT) \
|
| //#define X(val, is_signed, swapped64, C_32, C1_64, C2_64)
|
|
|
| #endif // SUBZERO_SRC_ICETARGETLOWERINGARM32_DEF
|
|
|