1*03ce13f7SAndroid Build Coastguard Worker //===- subzero/src/IceConditionCodesX8664.h - Condition Codes ---*- C++ -*-===// 2*03ce13f7SAndroid Build Coastguard Worker // 3*03ce13f7SAndroid Build Coastguard Worker // The Subzero Code Generator 4*03ce13f7SAndroid Build Coastguard Worker // 5*03ce13f7SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*03ce13f7SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*03ce13f7SAndroid Build Coastguard Worker // 8*03ce13f7SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*03ce13f7SAndroid Build Coastguard Worker /// 10*03ce13f7SAndroid Build Coastguard Worker /// \file 11*03ce13f7SAndroid Build Coastguard Worker /// \brief Declares the condition codes for x86. 12*03ce13f7SAndroid Build Coastguard Worker /// 13*03ce13f7SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Worker #ifndef SUBZERO_SRC_ICECONDITIONCODESX86_H 16*03ce13f7SAndroid Build Coastguard Worker #define SUBZERO_SRC_ICECONDITIONCODESX86_H 17*03ce13f7SAndroid Build Coastguard Worker 18*03ce13f7SAndroid Build Coastguard Worker #include "IceDefs.h" 19*03ce13f7SAndroid Build Coastguard Worker #include "IceInstX86.def" 20*03ce13f7SAndroid Build Coastguard Worker 21*03ce13f7SAndroid Build Coastguard Worker namespace Ice { 22*03ce13f7SAndroid Build Coastguard Worker 23*03ce13f7SAndroid Build Coastguard Worker class CondX86 { 24*03ce13f7SAndroid Build Coastguard Worker public: 25*03ce13f7SAndroid Build Coastguard Worker /// An enum of condition codes used for branches and cmov. The enum value 26*03ce13f7SAndroid Build Coastguard Worker /// should match the value used to encode operands in binary instructions. 27*03ce13f7SAndroid Build Coastguard Worker enum BrCond { 28*03ce13f7SAndroid Build Coastguard Worker #define X(val, encode, opp, dump, emit) val = encode, 29*03ce13f7SAndroid Build Coastguard Worker ICEINSTX86BR_TABLE 30*03ce13f7SAndroid Build Coastguard Worker #undef X 31*03ce13f7SAndroid Build Coastguard Worker Br_None 32*03ce13f7SAndroid Build Coastguard Worker }; 33*03ce13f7SAndroid Build Coastguard Worker 34*03ce13f7SAndroid Build Coastguard Worker /// An enum of condition codes relevant to the CMPPS instruction. The enum 35*03ce13f7SAndroid Build Coastguard Worker /// value should match the value used to encode operands in binary 36*03ce13f7SAndroid Build Coastguard Worker /// instructions. 37*03ce13f7SAndroid Build Coastguard Worker enum CmppsCond { 38*03ce13f7SAndroid Build Coastguard Worker #define X(val, emit) val, 39*03ce13f7SAndroid Build Coastguard Worker ICEINSTX86CMPPS_TABLE 40*03ce13f7SAndroid Build Coastguard Worker #undef X 41*03ce13f7SAndroid Build Coastguard Worker Cmpps_Invalid 42*03ce13f7SAndroid Build Coastguard Worker }; 43*03ce13f7SAndroid Build Coastguard Worker }; 44*03ce13f7SAndroid Build Coastguard Worker 45*03ce13f7SAndroid Build Coastguard Worker } // end of namespace Ice 46*03ce13f7SAndroid Build Coastguard Worker 47*03ce13f7SAndroid Build Coastguard Worker #endif // SUBZERO_SRC_ICECONDITIONCODESX86_H 48