Index: src/IceInstX8632.h |
diff --git a/src/IceInstX8632.h b/src/IceInstX8632.h |
index 8235d1fe264e284f355e8adbb6d1bc19d1ec573c..81d3fd8c973dea7344b4f020d41de20cf96d708b 100644 |
--- a/src/IceInstX8632.h |
+++ b/src/IceInstX8632.h |
@@ -274,13 +274,14 @@ protected: |
} |
}; |
-// InstX8632Label represents an intra-block label that is the |
-// target of an intra-block branch. These are used for lowering i1 |
-// calculations, Select instructions, and 64-bit compares on a 32-bit |
-// architecture, without basic block splitting. Basic block splitting |
-// is not so desirable for several reasons, one of which is the impact |
-// on decisions based on whether a variable's live range spans |
-// multiple basic blocks. |
+// InstX8632Label represents an intra-block label that is the target |
+// of an intra-block branch. The offset between the label and the |
+// branch must be fit into one byte (considered "near"). These are |
+// used for lowering i1 calculations, Select instructions, and 64-bit |
+// compares on a 32-bit architecture, without basic block splitting. |
+// Basic block splitting is not so desirable for several reasons, one |
+// of which is the impact on decisions based on whether a variable's |
+// live range spans multiple basic blocks. |
// |
// Intra-block control flow must be used with caution. Consider the |
// sequence for "c = (a >= b ? x : y)". |
@@ -321,15 +322,15 @@ public: |
} |
uint32_t getEmitInstCount() const override { return 0; } |
IceString getName(const Cfg *Func) const; |
+ SizeT getNumber() const { return Number; } |
void emit(const Cfg *Func) const override; |
- // TODO(jvoung): Filler in. |
- void emitIAS(const Cfg *Func) const override { emit(Func); } |
+ void emitIAS(const Cfg *Func) const override; |
void dump(const Cfg *Func) const override; |
private: |
InstX8632Label(Cfg *Func, TargetX8632 *Target); |
~InstX8632Label() override {} |
- SizeT Number; // used only for unique label string generation |
+ SizeT Number; // used for unique label generation. |
}; |
// Conditional and unconditional branch instruction. |
@@ -385,8 +386,7 @@ public: |
return Sum; |
} |
void emit(const Cfg *Func) const override; |
- // TODO(jvoung): Filler in. |
- void emitIAS(const Cfg *Func) const override { emit(Func); } |
+ void emitIAS(const Cfg *Func) const override; |
void dump(const Cfg *Func) const override; |
static bool classof(const Inst *Inst) { return isClassof(Inst, Br); } |