| Index: runtime/vm/intermediate_language_mips.cc | 
| =================================================================== | 
| --- runtime/vm/intermediate_language_mips.cc	(revision 24832) | 
| +++ runtime/vm/intermediate_language_mips.cc	(working copy) | 
| @@ -1886,6 +1886,45 @@ | 
| } | 
|  | 
|  | 
| +LocationSummary* InstantiateTypeInstr::MakeLocationSummary() const { | 
| +  const intptr_t kNumInputs = 1; | 
| +  const intptr_t kNumTemps = 0; | 
| +  LocationSummary* locs = | 
| +      new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); | 
| +  locs->set_in(0, Location::RegisterLocation(T0)); | 
| +  locs->set_out(Location::RegisterLocation(T0)); | 
| +  return locs; | 
| +} | 
| + | 
| + | 
| +void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 
| +  __ TraceSimMsg("InstantiateTypeInstr"); | 
| +  Register instantiator_reg = locs()->in(0).reg(); | 
| +  Register result_reg = locs()->out().reg(); | 
| + | 
| +  // 'instantiator_reg' is the instantiator AbstractTypeArguments object | 
| +  // (or null). | 
| +  // A runtime call to instantiate the type is required. | 
| +  __ addiu(SP, SP, Immediate(-3 * kWordSize)); | 
| +  __ LoadObject(TMP1, Object::ZoneHandle()); | 
| +  __ sw(TMP1, Address(SP, 2 * kWordSize));  // Make room for the result. | 
| +  __ LoadObject(TMP1, type()); | 
| +  __ sw(TMP1, Address(SP, 1 * kWordSize)); | 
| +  // Push instantiator type arguments. | 
| +  __ sw(instantiator_reg, Address(SP, 0 * kWordSize)); | 
| + | 
| +  compiler->GenerateCallRuntime(token_pos(), | 
| +                                deopt_id(), | 
| +                                kInstantiateTypeRuntimeEntry, | 
| +                                locs()); | 
| +  // Pop instantiated type. | 
| +  __ lw(result_reg, Address(SP, 2 * kWordSize)); | 
| +  // Drop instantiator and uninstantiated type. | 
| +  __ addiu(SP, SP, Immediate(3 * kWordSize)); | 
| +  ASSERT(instantiator_reg == result_reg); | 
| +} | 
| + | 
| + | 
| LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary() const { | 
| const intptr_t kNumInputs = 1; | 
| const intptr_t kNumTemps = 0; | 
|  |