| Index: src/IceInst.def
|
| diff --git a/src/IceInst.def b/src/IceInst.def
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..60c613d408bd0cdc49c4ea4efd192ff860ea6643
|
| --- /dev/null
|
| +++ b/src/IceInst.def
|
| @@ -0,0 +1,89 @@
|
| +//===- subzero/src/IceInst.def - X-macros for ICE instructions -*- C++ -*-===//
|
| +//
|
| +// The Subzero Code Generator
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +//
|
| +// This file defines properties of ICE instructions in the form of
|
| +// x-macros.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#ifndef SUBZERO_SRC_ICEINST_DEF
|
| +#define SUBZERO_SRC_ICEINST_DEF
|
| +
|
| +#define ICEINSTARITHMETIC_TABLE \
|
| + /* enum value, printable string, commutative */ \
|
| + X(Add, "add", 1) \
|
| + X(Fadd, "fadd", 0) \
|
| + X(Sub, "sub", 0) \
|
| + X(Fsub, "fsub", 0) \
|
| + X(Mul, "mul", 1) \
|
| + X(Fmul, "fmul", 0) \
|
| + X(Udiv, "udiv", 0) \
|
| + X(Sdiv, "sdiv", 0) \
|
| + X(Fdiv, "fdiv", 0) \
|
| + X(Urem, "urem", 0) \
|
| + X(Srem, "srem", 0) \
|
| + X(Frem, "frem", 0) \
|
| + X(Shl, "shl", 0) \
|
| + X(Lshr, "lshr", 0) \
|
| + X(Ashr, "ashr", 0) \
|
| + X(And, "and", 1) \
|
| + X(Or, "or", 1) \
|
| + X(Xor, "xor", 1)
|
| +//#define X(tag, str, commutative)
|
| +
|
| +#define ICEINSTCAST_TABLE \
|
| + /* enum value, printable string */ \
|
| + X(Trunc, "trunc") \
|
| + X(Zext, "zext") \
|
| + X(Sext, "sext") \
|
| + X(Fptrunc, "fptrunc") \
|
| + X(Fpext, "fpext") \
|
| + X(Fptoui, "fptoui") \
|
| + X(Fptosi, "fptosi") \
|
| + X(Uitofp, "uitofp") \
|
| + X(Sitofp, "sitofp") \
|
| + X(Bitcast, "bitcast")
|
| +//#define X(tag, str)
|
| +
|
| +#define ICEINSTFCMP_TABLE \
|
| + /* enum value, printable string */ \
|
| + X(False, "false") \
|
| + X(Oeq, "oeq") \
|
| + X(Ogt, "ogt") \
|
| + X(Oge, "oge") \
|
| + X(Olt, "olt") \
|
| + X(Ole, "ole") \
|
| + X(One, "one") \
|
| + X(Ord, "ord") \
|
| + X(Ueq, "ueq") \
|
| + X(Ugt, "ugt") \
|
| + X(Uge, "uge") \
|
| + X(Ult, "ult") \
|
| + X(Ule, "ule") \
|
| + X(Une, "une") \
|
| + X(Uno, "uno") \
|
| + X(True, "true")
|
| +//#define X(tag, str)
|
| +
|
| +#define ICEINSTICMP_TABLE \
|
| + /* enum value, printable string */ \
|
| + X(Eq, "eq") \
|
| + X(Ne, "ne") \
|
| + X(Ugt, "ugt") \
|
| + X(Uge, "uge") \
|
| + X(Ult, "ult") \
|
| + X(Ule, "ule") \
|
| + X(Sgt, "sgt") \
|
| + X(Sge, "sge") \
|
| + X(Slt, "slt") \
|
| + X(Sle, "sle")
|
| +//#define X(tag, str)
|
| +
|
| +
|
| +#endif // SUBZERO_SRC_ICEINST_DEF
|
|
|