15cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur//===- subzero/src/IceConditionCodesMIPS32.h - Condition Codes --*- C++ -*-===// 25cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// 35cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// The Subzero Code Generator 45cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// 55cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// This file is distributed under the University of Illinois Open Source 65cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// License. See LICENSE.TXT for details. 75cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur// 85cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur//===----------------------------------------------------------------------===// 95cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur/// 105cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur/// \file 115cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur/// \brief Declares the condition codes for MIPS32. 125cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur/// 135cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur//===----------------------------------------------------------------------===// 145cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 155cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#ifndef SUBZERO_SRC_ICECONDITIONCODESMIPS32_H 165cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#define SUBZERO_SRC_ICECONDITIONCODESMIPS32_H 175cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 185cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#include "IceDefs.h" 195cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#include "IceInstMIPS32.def" 205cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 215cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakurnamespace Ice { 225cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 235cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakurclass CondMIPS32 { 245cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur CondMIPS32() = delete; 255cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur CondMIPS32(const CondMIPS32 &) = delete; 265cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur CondMIPS32 &operator=(const CondMIPS32 &) = delete; 275cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 285cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakurpublic: 295cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur /// An enum of codes used for conditional instructions. The enum value should 305cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur /// match the value used to encode operands in binary instructions. 315cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur enum Cond { 325cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#define X(tag, opp, emit) tag, 335cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur ICEINSTMIPS32COND_TABLE 345cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#undef X 355cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur }; 365cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 375cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur static bool isDefined(Cond C) { return C != kNone; } 385cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 395cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur static bool isUnconditional(Cond C) { return !isDefined(C) || C == AL; } 405cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur}; 415cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 425cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur} // end of namespace Ice 435cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur 445cce76190a9bd6a6a524b2afee917f6bec922d8dSagar Thakur#endif // SUBZERO_SRC_ICECONDITIONCODESMIPS32_H 45