Home | History | Annotate | Download | only in src
      1 //===- subzero/src/IceConditionCodesARM32.h - Condition Codes ---*- C++ -*-===//
      2 //
      3 //                        The Subzero Code Generator
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 ///
     10 /// \file
     11 /// \brief Declares the condition codes for ARM32.
     12 ///
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef SUBZERO_SRC_ICECONDITIONCODESARM32_H
     16 #define SUBZERO_SRC_ICECONDITIONCODESARM32_H
     17 
     18 #include "IceDefs.h"
     19 #include "IceInstARM32.def"
     20 
     21 namespace Ice {
     22 
     23 class CondARM32 {
     24   CondARM32() = delete;
     25   CondARM32(const CondARM32 &) = delete;
     26   CondARM32 &operator=(const CondARM32 &) = delete;
     27 
     28 public:
     29   /// An enum of codes used for conditional instructions. The enum value should
     30   /// match the value used to encode operands in binary instructions.
     31   enum Cond {
     32 #define X(tag, encode, opp, emit) tag = encode,
     33     ICEINSTARM32COND_TABLE
     34 #undef X
     35   };
     36 
     37   static bool isDefined(Cond C) { return C != kNone; }
     38 
     39   static bool isUnconditional(Cond C) { return !isDefined(C) || C == AL; }
     40 };
     41 
     42 } // end of namespace Ice
     43 
     44 #endif // SUBZERO_SRC_ICECONDITIONCODESARM32_H
     45