Index: runtime/vm/intermediate_language_mips.cc |
=================================================================== |
--- runtime/vm/intermediate_language_mips.cc (revision 31428) |
+++ runtime/vm/intermediate_language_mips.cc (working copy) |
@@ -101,13 +101,7 @@ |
__ Bind(&stack_ok); |
} |
#endif |
- // This sequence is patched by a debugger breakpoint. There is no need for |
- // extra NOP instructions here because the sequence patched in for a |
- // breakpoint is shorter than the sequence here. |
__ LeaveDartFrameAndReturn(); |
- compiler->AddCurrentDescriptor(PcDescriptors::kReturn, |
- Isolate::kNoDeoptId, |
- token_pos()); |
} |
@@ -786,6 +780,34 @@ |
} |
+LocationSummary* DebugStepCheckInstr::MakeLocationSummary(bool opt) const { |
+ const intptr_t kNumInputs = 0; |
+ const intptr_t kNumTemps = 0; |
+ LocationSummary* locs = |
+ new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ return locs; |
+} |
+ |
+ |
+void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
+ if (!compiler->is_optimizing()) { |
+ const ExternalLabel label("debug_step_check", |
+ StubCode::DebugStepCheckEntryPoint()); |
+ compiler->GenerateCall(token_pos(), |
+ &label, |
+ PcDescriptors::kReturn, |
+ locs()); |
+ } |
+} |
+ |
+ |
+Instruction* DebugStepCheckInstr::Canonicalize(FlowGraph* flow_graph) { |
+ if (compiler->is_optimizing()) { |
+ return NULL; |
+ } |
+} |
+ |
+ |
LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(bool opt) const { |
const intptr_t kNumInputs = 1; |
// TODO(fschneider): Allow immediate operands for the char code. |