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 isDefined(Cond C)37 static bool isDefined(Cond C) { return C != kNone; } 38 isUnconditional(Cond C)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