1 //===- subzero/src/IceConditionCodesMIPS32.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 MIPS32. 12 /// 13 //===----------------------------------------------------------------------===// 14 15 #ifndef SUBZERO_SRC_ICECONDITIONCODESMIPS32_H 16 #define SUBZERO_SRC_ICECONDITIONCODESMIPS32_H 17 18 #include "IceDefs.h" 19 #include "IceInstMIPS32.def" 20 21 namespace Ice { 22 23 class CondMIPS32 { 24 CondMIPS32() = delete; 25 CondMIPS32(const CondMIPS32 &) = delete; 26 CondMIPS32 &operator=(const CondMIPS32 &) = 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, opp, emit) tag, 33 ICEINSTMIPS32COND_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_ICECONDITIONCODESMIPS32_H 45