Index: src/x64/lithium-x64.h |
=================================================================== |
--- src/x64/lithium-x64.h (revision 7663) |
+++ src/x64/lithium-x64.h (working copy) |
@@ -408,17 +408,17 @@ |
}; |
-class LLabel: public LGap { |
+class LLabel: public LTemplateInstruction<0, 0, 0> { |
public: |
explicit LLabel(HBasicBlock* block) |
- : LGap(block), replacement_(NULL) { } |
+ : block_(block), replacement_(NULL) { } |
DECLARE_CONCRETE_INSTRUCTION(Label, "label") |
virtual void PrintDataTo(StringStream* stream); |
- int block_id() const { return block()->block_id(); } |
- bool is_loop_header() const { return block()->IsLoopHeader(); } |
+ int block_id() const { return block_->block_id(); } |
+ bool is_loop_header() const { return block_->IsLoopHeader(); } |
Label* label() { return &label_; } |
LLabel* replacement() const { return replacement_; } |
void set_replacement(LLabel* label) { replacement_ = label; } |
@@ -426,6 +426,7 @@ |
private: |
Label label_; |
+ HBasicBlock* block_; |
LLabel* replacement_; |
}; |
@@ -2004,6 +2005,10 @@ |
int first_instruction = block->first_instruction_index(); |
return LLabel::cast(instructions_[first_instruction]); |
} |
+ LGap* GetFirstGap(HBasicBlock* block) const { |
+ int first_instruction = block->first_instruction_index(); |
+ return LGap::cast(instructions_[first_instruction + 1]); |
+ } |
int LookupDestination(int block_id) const { |
LLabel* cur = GetLabel(block_id); |
while (cur->replacement() != NULL) { |