blob: 77dd4c753c06e6c8dc49573e490beacba6811cb5 [file] [log] [blame]
Jan Voungbd385e42014-09-18 18:18:10 -07001//===- subzero/src/IceConditionCodesX8632.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// This file declares the condition codes for x86-32.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef SUBZERO_SRC_ICECONDITIONCODESX8632_H
15#define SUBZERO_SRC_ICECONDITIONCODESX8632_H
16
17#include "IceDefs.h"
18#include "IceInstX8632.def"
19
20namespace Ice {
21
22class CondX86 {
Jim Stichnothc6ead202015-02-24 09:30:30 -080023 CondX86() = delete;
24 CondX86(const CondX86 &) = delete;
25 CondX86 &operator=(const CondX86 &) = delete;
26
Jan Voungbd385e42014-09-18 18:18:10 -070027public:
28 // An enum of condition codes used for branches and cmov. The enum value
29 // should match the value used to encode operands in binary instructions.
30 enum BrCond {
31#define X(tag, encode, opp, dump, emit) tag encode,
32 ICEINSTX8632BR_TABLE
33#undef X
34 Br_None
35 };
36
37 // An enum of condition codes relevant to the CMPPS instruction. The enum
38 // value should match the value used to encode operands in binary
39 // instructions.
40 enum CmppsCond {
41#define X(tag, emit) tag,
42 ICEINSTX8632CMPPS_TABLE
43#undef X
44 Cmpps_Invalid
45 };
46};
47
48} // end of namespace Ice
49
50#endif // SUBZERO_SRC_ICECONDITIONCODESX8632_H