Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler_arm.cc |
| =================================================================== |
| --- runtime/vm/flow_graph_compiler_arm.cc (revision 24193) |
| +++ runtime/vm/flow_graph_compiler_arm.cc (working copy) |
| @@ -910,7 +910,8 @@ |
| function.IsClosureFunction() ? Symbols::Call().raw() : function.name()); |
| const int kNumArgsChecked = 1; |
| const ICData& ic_data = ICData::ZoneHandle( |
| - ICData::New(function, name, Isolate::kNoDeoptId, kNumArgsChecked)); |
| + ICData::New(function, name, Array::Handle(), |
|
siva
2013/06/19 23:07:15
use Object::null_array() instead of Array::Handle(
srdjan
2013/06/20 00:12:34
Done.
|
| + Isolate::kNoDeoptId, kNumArgsChecked)); |
| __ LoadObject(R5, ic_data); |
| // FP - 4 : saved PP, object pool pointer of caller. |
| // FP + 0 : previous frame pointer. |
| @@ -1095,7 +1096,7 @@ |
| // Invoke noSuchMethod function passing "call" as the function name. |
| const int kNumArgsChecked = 1; |
| const ICData& ic_data = ICData::ZoneHandle( |
| - ICData::New(function, Symbols::Call(), |
| + ICData::New(function, Symbols::Call(), Array::Handle(), |
|
siva
2013/06/19 23:07:15
Ditto.
|
| Isolate::kNoDeoptId, kNumArgsChecked)); |
| __ LoadObject(R5, ic_data); |
| // FP - 4 : saved PP, object pool pointer of caller. |
| @@ -1238,7 +1239,6 @@ |
| void FlowGraphCompiler::EmitOptimizedInstanceCall( |
| ExternalLabel* target_label, |
| const ICData& ic_data, |
| - const Array& arguments_descriptor, |
| intptr_t argument_count, |
| intptr_t deopt_id, |
| intptr_t token_pos, |
| @@ -1249,8 +1249,8 @@ |
| // top-level function (parsed_function().function()) which could be |
| // reoptimized and which counter needs to be incremented. |
| // Pass the function explicitly, it is used in IC stub. |
| + |
| __ LoadObject(R6, parsed_function().function()); |
| - __ LoadObject(R4, arguments_descriptor); |
| __ LoadObject(R5, ic_data); |
| GenerateDartCall(deopt_id, |
| token_pos, |
| @@ -1263,12 +1263,10 @@ |
| void FlowGraphCompiler::EmitInstanceCall(ExternalLabel* target_label, |
| const ICData& ic_data, |
| - const Array& arguments_descriptor, |
| intptr_t argument_count, |
| intptr_t deopt_id, |
| intptr_t token_pos, |
| LocationSummary* locs) { |
| - __ LoadObject(R4, arguments_descriptor); |
| __ LoadObject(R5, ic_data); |
| GenerateDartCall(deopt_id, |
| token_pos, |
| @@ -1281,13 +1279,15 @@ |
| void FlowGraphCompiler::EmitMegamorphicInstanceCall( |
| const ICData& ic_data, |
| - const Array& arguments_descriptor, |
| intptr_t argument_count, |
| intptr_t deopt_id, |
| intptr_t token_pos, |
| LocationSummary* locs) { |
| MegamorphicCacheTable* table = Isolate::Current()->megamorphic_cache_table(); |
| const String& name = String::Handle(ic_data.target_name()); |
| + const Array& arguments_descriptor = |
| + Array::ZoneHandle(ic_data.arguments_descriptor()); |
| + ASSERT(!arguments_descriptor.IsNull()); |
| const MegamorphicCache& cache = |
| MegamorphicCache::ZoneHandle(table->Lookup(name, arguments_descriptor)); |
| Label not_smi, load_cache; |