Index: src/IceInstX8632.h |
diff --git a/src/IceInstX8632.h b/src/IceInstX8632.h |
index ed538f49b33dbacb0b0d46b8306dcfc22dde838a..f0558db34e35675c7396925388c3eccf1ce3c2a3 100644 |
--- a/src/IceInstX8632.h |
+++ b/src/IceInstX8632.h |
@@ -290,6 +290,7 @@ public: |
static InstX8632Label *create(Cfg *Func, TargetX8632 *Target) { |
return new (Func->allocate<InstX8632Label>()) InstX8632Label(Func, Target); |
} |
+ virtual uint32_t getEmitInstCount() const { return 0; } |
IceString getName(const Cfg *Func) const; |
virtual void emit(const Cfg *Func) const; |
virtual void dump(const Cfg *Func) const; |
@@ -324,7 +325,7 @@ public: |
InstX8632Br(Func, Target, NULL, NULL, Condition); |
} |
// Create a conditional intra-block branch (or unconditional, if |
- // Condition==None) to a label in the current block. |
+ // Condition==Br_None) to a label in the current block. |
static InstX8632Br *create(Cfg *Func, InstX8632Label *Label, |
BrCond Condition) { |
return new (Func->allocate<InstX8632Br>()) |
@@ -332,6 +333,15 @@ public: |
} |
CfgNode *getTargetTrue() const { return TargetTrue; } |
CfgNode *getTargetFalse() const { return TargetFalse; } |
+ virtual uint32_t getEmitInstCount() const { |
+ if (Label) |
+ return 1; |
+ if (Condition == Br_None) |
+ return 1; |
+ if (getTargetFalse()) |
+ return 2; |
+ return 1; |
+ } |
virtual void emit(const Cfg *Func) const; |
virtual void dump(const Cfg *Func) const; |
static bool classof(const Inst *Inst) { return isClassof(Inst, Br); } |