| Index: runtime/vm/intermediate_language_x64.cc | 
| =================================================================== | 
| --- runtime/vm/intermediate_language_x64.cc	(revision 31428) | 
| +++ runtime/vm/intermediate_language_x64.cc	(working copy) | 
| @@ -96,11 +96,8 @@ | 
| __ Bind(&done); | 
| } | 
| #endif | 
| - | 
| -  __ ReturnPatchable(); | 
| -  compiler->AddCurrentDescriptor(PcDescriptors::kReturn, | 
| -                                 Isolate::kNoDeoptId, | 
| -                                 token_pos()); | 
| +  __ LeaveDartFrame(); | 
| +  __ ret(); | 
| } | 
|  | 
|  | 
| @@ -640,6 +637,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; | 
| +  } | 
| +} | 
| + | 
| + | 
| static bool CanBeImmediateIndex(Value* index, intptr_t cid) { | 
| if (!index->definition()->IsConstant()) return false; | 
| const Object& constant = index->definition()->AsConstant()->value(); | 
|  |