OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #ifndef RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ | 5 #ifndef RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ |
6 #define RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ | 6 #define RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/code_descriptors.h" | 10 #include "vm/code_descriptors.h" |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 | 703 |
704 RawSubtypeTestCache* GenerateSubtype1TestCacheLookup( | 704 RawSubtypeTestCache* GenerateSubtype1TestCacheLookup( |
705 TokenPosition token_pos, | 705 TokenPosition token_pos, |
706 const Class& type_class, | 706 const Class& type_class, |
707 Label* is_instance_lbl, | 707 Label* is_instance_lbl, |
708 Label* is_not_instance_lbl); | 708 Label* is_not_instance_lbl); |
709 | 709 |
710 enum TypeTestStubKind { | 710 enum TypeTestStubKind { |
711 kTestTypeOneArg, | 711 kTestTypeOneArg, |
712 kTestTypeTwoArgs, | 712 kTestTypeTwoArgs, |
713 kTestTypeThreeArgs, | 713 kTestTypeFourArgs, |
714 }; | 714 }; |
715 | 715 |
716 RawSubtypeTestCache* GenerateCallSubtypeTestStub(TypeTestStubKind test_kind, | 716 RawSubtypeTestCache* GenerateCallSubtypeTestStub( |
717 Register instance_reg, | 717 TypeTestStubKind test_kind, |
718 Register type_arguments_reg, | 718 Register instance_reg, |
719 Register temp_reg, | 719 Register instantiator_type_arguments_reg, |
720 Label* is_instance_lbl, | 720 Register function_type_arguments_reg, |
721 Label* is_not_instance_lbl); | 721 Register temp_reg, |
| 722 Label* is_instance_lbl, |
| 723 Label* is_not_instance_lbl); |
722 | 724 |
723 void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false); | 725 void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false); |
724 | 726 |
725 void CopyParameters(); | 727 void CopyParameters(); |
726 #endif // !defined(TARGET_ARCH_DBC) | 728 #endif // !defined(TARGET_ARCH_DBC) |
727 | 729 |
728 void GenerateInlinedGetter(intptr_t offset); | 730 void GenerateInlinedGetter(intptr_t offset); |
729 void GenerateInlinedSetter(intptr_t offset); | 731 void GenerateInlinedSetter(intptr_t offset); |
730 | 732 |
731 // Perform a greedy local register allocation. Consider all registers free. | 733 // Perform a greedy local register allocation. Consider all registers free. |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_; | 839 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_; |
838 | 840 |
839 Array& edge_counters_array_; | 841 Array& edge_counters_array_; |
840 | 842 |
841 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 843 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
842 }; | 844 }; |
843 | 845 |
844 } // namespace dart | 846 } // namespace dart |
845 | 847 |
846 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ | 848 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |