Index: runtime/vm/il_printer.cc |
diff --git a/runtime/vm/il_printer.cc b/runtime/vm/il_printer.cc |
index e9eea97c1bb91a3f9b0dd57c04f97c0c674475c2..54b6a349156c7c0b2defb1092141ad34a75b8fab 100644 |
--- a/runtime/vm/il_printer.cc |
+++ b/runtime/vm/il_printer.cc |
@@ -580,6 +580,18 @@ void MathUnaryInstr::PrintOperandsTo(BufferFormatter* f) const { |
} |
+void CaseInsensitiveCompareUC16Instr::PrintOperandsTo( |
+ BufferFormatter* f) const { |
+ str()->PrintTo(f); |
Vyacheslav Egorov (Google)
2014/10/01 20:13:21
Isn't this what Definition::PrintOperandsTo(f) doe
jgruber1
2014/10/03 18:59:52
Done.
|
+ f->Print(", "); |
+ lhs_index()->PrintTo(f); |
+ f->Print(", "); |
+ rhs_index()->PrintTo(f); |
+ f->Print(", "); |
+ length()->PrintTo(f); |
+} |
+ |
+ |
void MergedMathInstr::PrintOperandsTo(BufferFormatter* f) const { |
f->Print("'%s', ", MergedMathInstr::KindToCString(kind())); |
Definition::PrintOperandsTo(f); |
@@ -934,6 +946,34 @@ void JoinEntryInstr::PrintTo(BufferFormatter* f) const { |
} |
+void IndirectEntryInstr::PrintTo(BufferFormatter* f) const { |
+ if (try_index() != CatchClauseNode::kInvalidTryIndex) { |
Vyacheslav Egorov (Google)
2014/10/01 20:13:21
Can IndirectEntry be inside of the try? Maybe just
jgruber1
2014/10/03 18:59:52
Done.
|
+ f->Print("B%" Pd "[join indirect try_idx %" Pd "]:%" Pd " pred(", |
+ block_id(), try_index(), GetDeoptId()); |
+ } else { |
+ 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: |
@@ -1076,6 +1116,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:("); |
+ } |
+ offset_from_start_->PrintTo(f); |
+ f->Print(")"); |
+} |
+ |
+ |
void BranchInstr::PrintTo(BufferFormatter* f) const { |
f->Print("%s ", DebugName()); |
f->Print("if "); |