OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
6 | 6 |
7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
8 #include "vm/bit_vector.h" | 8 #include "vm/bit_vector.h" |
9 #include "vm/dart_entry.h" | 9 #include "vm/dart_entry.h" |
10 #include "vm/flow_graph_allocator.h" | 10 #include "vm/flow_graph_allocator.h" |
(...skipping 1665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1676 | 1676 |
1677 | 1677 |
1678 LocationSummary* InstanceCallInstr::MakeLocationSummary() const { | 1678 LocationSummary* InstanceCallInstr::MakeLocationSummary() const { |
1679 return MakeCallSummary(); | 1679 return MakeCallSummary(); |
1680 } | 1680 } |
1681 | 1681 |
1682 | 1682 |
1683 void InstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 1683 void InstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
1684 ICData& call_ic_data = ICData::ZoneHandle(ic_data()->raw()); | 1684 ICData& call_ic_data = ICData::ZoneHandle(ic_data()->raw()); |
1685 if (!FLAG_propagate_ic_data || !compiler->is_optimizing()) { | 1685 if (!FLAG_propagate_ic_data || !compiler->is_optimizing()) { |
| 1686 const Array& arguments_descriptor = |
| 1687 Array::Handle(ArgumentsDescriptor::New(ArgumentCount(), |
| 1688 argument_names())); |
1686 call_ic_data = ICData::New(compiler->parsed_function().function(), | 1689 call_ic_data = ICData::New(compiler->parsed_function().function(), |
1687 function_name(), | 1690 function_name(), |
| 1691 arguments_descriptor, |
1688 deopt_id(), | 1692 deopt_id(), |
1689 checked_argument_count()); | 1693 checked_argument_count()); |
1690 } | 1694 } |
1691 if (compiler->is_optimizing()) { | 1695 if (compiler->is_optimizing()) { |
1692 ASSERT(HasICData()); | 1696 ASSERT(HasICData()); |
1693 if (ic_data()->NumberOfChecks() > 0) { | 1697 if (ic_data()->NumberOfChecks() > 0) { |
1694 const ICData& unary_ic_data = | 1698 const ICData& unary_ic_data = |
1695 ICData::ZoneHandle(ic_data()->AsUnaryClassChecks()); | 1699 ICData::ZoneHandle(ic_data()->AsUnaryClassChecks()); |
1696 compiler->GenerateInstanceCall(deopt_id(), | 1700 compiler->GenerateInstanceCall(deopt_id(), |
1697 token_pos(), | 1701 token_pos(), |
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2549 default: | 2553 default: |
2550 UNREACHABLE(); | 2554 UNREACHABLE(); |
2551 } | 2555 } |
2552 return kPowRuntimeEntry; | 2556 return kPowRuntimeEntry; |
2553 } | 2557 } |
2554 | 2558 |
2555 | 2559 |
2556 #undef __ | 2560 #undef __ |
2557 | 2561 |
2558 } // namespace dart | 2562 } // namespace dart |
OLD | NEW |