| Index: runtime/vm/flow_graph_compiler_mips.cc
 | 
| diff --git a/runtime/vm/flow_graph_compiler_mips.cc b/runtime/vm/flow_graph_compiler_mips.cc
 | 
| index 448b70a8f7dedf6c9e203b9d22c24566c2c796f3..29cd04fec843893f89f01adeb8b1506761c87ffb 100644
 | 
| --- a/runtime/vm/flow_graph_compiler_mips.cc
 | 
| +++ b/runtime/vm/flow_graph_compiler_mips.cc
 | 
| @@ -1315,17 +1315,29 @@ void FlowGraphCompiler::EmitSwitchableInstanceCall(
 | 
|      __ BranchLink(*StubCode::ICLookup_entry());
 | 
|    } else {
 | 
|      const String& name = String::Handle(zone(), ic_data.target_name());
 | 
| -    const Array& arguments_descriptor =
 | 
| -        Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
 | 
| -    ASSERT(!arguments_descriptor.IsNull() &&
 | 
| -           (arguments_descriptor.Length() > 0));
 | 
| -    const MegamorphicCache& cache = MegamorphicCache::ZoneHandle(zone(),
 | 
| -        MegamorphicCacheTable::Lookup(isolate(), name, arguments_descriptor));
 | 
| -
 | 
| -    __ LoadUniqueObject(S5, cache);
 | 
| -    __ BranchLink(*StubCode::MegamorphicLookup_entry());
 | 
| +
 | 
| +    if (name.raw() == Symbols::Plus().raw()) {
 | 
| +      __ LoadUniqueObject(S5, ic_data);
 | 
| +      __ BranchLink(*StubCode::ICSmiAddLookup_entry());
 | 
| +    } else if (name.raw() == Symbols::Minus().raw()) {
 | 
| +      __ LoadUniqueObject(S5, ic_data);
 | 
| +      __ BranchLink(*StubCode::ICSmiSubLookup_entry());
 | 
| +    } else if (name.raw() == Symbols::Equals().raw()) {
 | 
| +      __ LoadUniqueObject(S5, ic_data);
 | 
| +      __ BranchLink(*StubCode::ICSmiEqualLookup_entry());
 | 
| +    } else {
 | 
| +      const Array& arguments_descriptor =
 | 
| +          Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
 | 
| +      ASSERT(!arguments_descriptor.IsNull() &&
 | 
| +             (arguments_descriptor.Length() > 0));
 | 
| +      const MegamorphicCache& cache = MegamorphicCache::ZoneHandle(zone(),
 | 
| +          MegamorphicCacheTable::Lookup(isolate(), name, arguments_descriptor));
 | 
| +
 | 
| +      __ LoadUniqueObject(S5, cache);
 | 
| +      __ BranchLink(*StubCode::MegamorphicLookup_entry());
 | 
| +    }
 | 
|    }
 | 
| -  __ jalr(T1);
 | 
| +  __ jalr(T1);  // A fast Smi operation may return past this call.
 | 
|  
 | 
|    AddCurrentDescriptor(RawPcDescriptors::kOther,
 | 
|        Thread::kNoDeoptId, token_pos);
 | 
| 
 |