| Index: src/IceInstX8632.h
|
| diff --git a/src/IceInstX8632.h b/src/IceInstX8632.h
|
| index 09615ce27f375f8b1ec0b21935c81752874e0299..a24f9863583778507d9b4d749d7980ab9671bb69 100644
|
| --- a/src/IceInstX8632.h
|
| +++ b/src/IceInstX8632.h
|
| @@ -18,6 +18,7 @@
|
|
|
| #include "IceDefs.h"
|
| #include "IceInst.h"
|
| +#include "IceConditionCodesX8632.h"
|
| #include "IceInstX8632.def"
|
| #include "IceOperand.h"
|
|
|
| @@ -224,13 +225,6 @@ public:
|
| Xor
|
| };
|
|
|
| - enum BrCond {
|
| -#define X(tag, opp, dump, emit) tag,
|
| - ICEINSTX8632BR_TABLE
|
| -#undef X
|
| - Br_None
|
| - };
|
| -
|
| static const char *getWidthString(Type Ty);
|
| virtual void emit(const Cfg *Func) const = 0;
|
| virtual void dump(const Cfg *Func) const;
|
| @@ -308,7 +302,7 @@ class InstX8632Br : public InstX8632 {
|
| public:
|
| // Create a conditional branch to a node.
|
| static InstX8632Br *create(Cfg *Func, CfgNode *TargetTrue,
|
| - CfgNode *TargetFalse, BrCond Condition) {
|
| + CfgNode *TargetFalse, CondX86::BrCond Condition) {
|
| const InstX8632Label *NoLabel = NULL;
|
| return new (Func->allocate<InstX8632Br>())
|
| InstX8632Br(Func, TargetTrue, TargetFalse, NoLabel, Condition);
|
| @@ -318,12 +312,13 @@ public:
|
| const CfgNode *NoCondTarget = NULL;
|
| const InstX8632Label *NoLabel = NULL;
|
| return new (Func->allocate<InstX8632Br>())
|
| - InstX8632Br(Func, NoCondTarget, Target, NoLabel, Br_None);
|
| + InstX8632Br(Func, NoCondTarget, Target, NoLabel, CondX86::Br_None);
|
| }
|
| // Create a non-terminator conditional branch to a node, with a
|
| // fallthrough to the next instruction in the current node. This is
|
| // used for switch lowering.
|
| - static InstX8632Br *create(Cfg *Func, CfgNode *Target, BrCond Condition) {
|
| + static InstX8632Br *create(Cfg *Func, CfgNode *Target,
|
| + CondX86::BrCond Condition) {
|
| const CfgNode *NoUncondTarget = NULL;
|
| const InstX8632Label *NoLabel = NULL;
|
| return new (Func->allocate<InstX8632Br>())
|
| @@ -332,7 +327,7 @@ public:
|
| // Create a conditional intra-block branch (or unconditional, if
|
| // Condition==Br_None) to a label in the current block.
|
| static InstX8632Br *create(Cfg *Func, InstX8632Label *Label,
|
| - BrCond Condition) {
|
| + CondX86::BrCond Condition) {
|
| const CfgNode *NoCondTarget = NULL;
|
| const CfgNode *NoUncondTarget = NULL;
|
| return new (Func->allocate<InstX8632Br>())
|
| @@ -357,11 +352,11 @@ public:
|
|
|
| private:
|
| InstX8632Br(Cfg *Func, const CfgNode *TargetTrue, const CfgNode *TargetFalse,
|
| - const InstX8632Label *Label, BrCond Condition);
|
| + const InstX8632Label *Label, CondX86::BrCond Condition);
|
| InstX8632Br(const InstX8632Br &) LLVM_DELETED_FUNCTION;
|
| InstX8632Br &operator=(const InstX8632Br &) LLVM_DELETED_FUNCTION;
|
| virtual ~InstX8632Br() {}
|
| - BrCond Condition;
|
| + CondX86::BrCond Condition;
|
| const CfgNode *TargetTrue;
|
| const CfgNode *TargetFalse;
|
| const InstX8632Label *Label; // Intra-block branch target
|
| @@ -780,7 +775,7 @@ private:
|
| class InstX8632Cmov : public InstX8632 {
|
| public:
|
| static InstX8632Cmov *create(Cfg *Func, Variable *Dest, Operand *Source,
|
| - BrCond Cond) {
|
| + CondX86::BrCond Cond) {
|
| return new (Func->allocate<InstX8632Cmov>())
|
| InstX8632Cmov(Func, Dest, Source, Cond);
|
| }
|
| @@ -789,27 +784,21 @@ public:
|
| static bool classof(const Inst *Inst) { return isClassof(Inst, Cmov); }
|
|
|
| private:
|
| - InstX8632Cmov(Cfg *Func, Variable *Dest, Operand *Source, BrCond Cond);
|
| + InstX8632Cmov(Cfg *Func, Variable *Dest, Operand *Source,
|
| + CondX86::BrCond Cond);
|
| InstX8632Cmov(const InstX8632Cmov &) LLVM_DELETED_FUNCTION;
|
| InstX8632Cmov &operator=(const InstX8632Cmov &) LLVM_DELETED_FUNCTION;
|
| virtual ~InstX8632Cmov() {}
|
|
|
| - BrCond Condition;
|
| + CondX86::BrCond Condition;
|
| };
|
|
|
| // Cmpps instruction - compare packed singled-precision floating point
|
| // values
|
| class InstX8632Cmpps : public InstX8632 {
|
| public:
|
| - enum CmppsCond {
|
| -#define X(tag, emit) tag,
|
| - ICEINSTX8632CMPPS_TABLE
|
| -#undef X
|
| - Cmpps_Invalid
|
| - };
|
| -
|
| static InstX8632Cmpps *create(Cfg *Func, Variable *Dest, Operand *Source,
|
| - CmppsCond Condition) {
|
| + CondX86::CmppsCond Condition) {
|
| return new (Func->allocate<InstX8632Cmpps>())
|
| InstX8632Cmpps(Func, Dest, Source, Condition);
|
| }
|
| @@ -818,12 +807,13 @@ public:
|
| static bool classof(const Inst *Inst) { return isClassof(Inst, Cmpps); }
|
|
|
| private:
|
| - InstX8632Cmpps(Cfg *Func, Variable *Dest, Operand *Source, CmppsCond Cond);
|
| + InstX8632Cmpps(Cfg *Func, Variable *Dest, Operand *Source,
|
| + CondX86::CmppsCond Cond);
|
| InstX8632Cmpps(const InstX8632Cmpps &) LLVM_DELETED_FUNCTION;
|
| InstX8632Cmpps &operator=(const InstX8632Cmpps &) LLVM_DELETED_FUNCTION;
|
| virtual ~InstX8632Cmpps() {}
|
|
|
| - CmppsCond Condition;
|
| + CondX86::CmppsCond Condition;
|
| };
|
|
|
| // Cmpxchg instruction - cmpxchg <dest>, <desired> will compare if <dest>
|
|
|