Index: runtime/vm/il_printer.cc |
diff --git a/runtime/vm/il_printer.cc b/runtime/vm/il_printer.cc |
index 77012cb8560ad5e9d08008dbfecce4db97cded62..b9cd6d401f0822c097ded0904a2e7be5baa191e5 100644 |
--- a/runtime/vm/il_printer.cc |
+++ b/runtime/vm/il_printer.cc |
@@ -928,6 +928,30 @@ void JoinEntryInstr::PrintTo(BufferFormatter* f) const { |
} |
+void IndirectEntryInstr::PrintTo(BufferFormatter* f) const { |
+ ASSERT(try_index() == CatchClauseNode::kInvalidTryIndex); |
+ f->Print("B%" Pd "[join indirect]:%" Pd " pred(", block_id(), GetDeoptId()); |
+ for (intptr_t i = 0; i < predecessors_.length(); ++i) { |
+ if (i > 0) f->Print(", "); |
+ f->Print("B%" Pd, predecessors_[i]->block_id()); |
+ } |
+ f->Print(")"); |
+ if (phis_ != NULL) { |
+ f->Print(" {"); |
+ for (intptr_t i = 0; i < phis_->length(); ++i) { |
+ if ((*phis_)[i] == NULL) continue; |
+ f->Print("\n "); |
+ (*phis_)[i]->PrintTo(f); |
+ } |
+ f->Print("\n}"); |
+ } |
+ if (HasParallelMove()) { |
+ f->Print(" "); |
+ parallel_move()->PrintTo(f); |
+ } |
+} |
+ |
+ |
static const char *RepresentationToCString(Representation rep) { |
switch (rep) { |
case kTagged: |
@@ -1070,6 +1094,17 @@ void GotoInstr::PrintTo(BufferFormatter* f) const { |
} |
+void IndirectGotoInstr::PrintTo(BufferFormatter* f) const { |
+ if (GetDeoptId() != Isolate::kNoDeoptId) { |
+ f->Print("igoto:%" Pd "(", GetDeoptId()); |
+ } else { |
+ f->Print("igoto:("); |
+ } |
+ InputAt(0)->PrintTo(f); |
+ f->Print(")"); |
+} |
+ |
+ |
void BranchInstr::PrintTo(BufferFormatter* f) const { |
f->Print("%s ", DebugName()); |
f->Print("if "); |