| 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 ");
|
|
|