| Index: runtime/vm/flow_graph_compiler.cc
|
| diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
|
| index 869627c6f1159050368e170a5723096b0d360f30..f6e45556487d4e15a44496cebc6c83ba52b4071e 100644
|
| --- a/runtime/vm/flow_graph_compiler.cc
|
| +++ b/runtime/vm/flow_graph_compiler.cc
|
| @@ -533,24 +533,25 @@ void FlowGraphCompiler::GenerateInstanceCall(
|
| argument_count, deopt_id, token_pos, locs);
|
| return;
|
| }
|
| +
|
| if (is_optimizing()) {
|
| - // Megamorphic call requires one argument ICData.
|
| - ASSERT(ic_data.num_args_tested() == 1);
|
| - label_address = StubCode::MegamorphicCallEntryPoint();
|
| - } else {
|
| - switch (ic_data.num_args_tested()) {
|
| - case 1:
|
| - label_address = StubCode::OneArgCheckInlineCacheEntryPoint();
|
| - break;
|
| - case 2:
|
| - label_address = StubCode::TwoArgsCheckInlineCacheEntryPoint();
|
| - break;
|
| - case 3:
|
| - label_address = StubCode::ThreeArgsCheckInlineCacheEntryPoint();
|
| - break;
|
| - default:
|
| - UNIMPLEMENTED();
|
| - }
|
| + EmitMegamorphicInstanceCall(ic_data, arguments_descriptor, argument_count,
|
| + deopt_id, token_pos, locs);
|
| + return;
|
| + }
|
| +
|
| + switch (ic_data.num_args_tested()) {
|
| + case 1:
|
| + label_address = StubCode::OneArgCheckInlineCacheEntryPoint();
|
| + break;
|
| + case 2:
|
| + label_address = StubCode::TwoArgsCheckInlineCacheEntryPoint();
|
| + break;
|
| + case 3:
|
| + label_address = StubCode::ThreeArgsCheckInlineCacheEntryPoint();
|
| + break;
|
| + default:
|
| + UNIMPLEMENTED();
|
| }
|
| ExternalLabel target_label("InlineCache", label_address);
|
| EmitInstanceCall(&target_label, ic_data, arguments_descriptor, argument_count,
|
|
|