OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 VM_OPT_CODE_GENERATOR_IA32_H_ | 5 #ifndef VM_OPT_CODE_GENERATOR_IA32_H_ |
6 #define VM_OPT_CODE_GENERATOR_IA32_H_ | 6 #define VM_OPT_CODE_GENERATOR_IA32_H_ |
7 | 7 |
8 #ifndef VM_OPT_CODE_GENERATOR_H_ | 8 #ifndef VM_OPT_CODE_GENERATOR_H_ |
9 #error Do not include opt_code_generator_ia32.h; use opt_code_generator.h. | 9 #error Do not include opt_code_generator_ia32.h; use opt_code_generator.h. |
10 #endif | 10 #endif |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 const String& field_name, | 89 const String& field_name, |
90 Register recv_reg); | 90 Register recv_reg); |
91 | 91 |
92 void GenerateInstanceSetter(const InstanceSetterArgs& args); | 92 void GenerateInstanceSetter(const InstanceSetterArgs& args); |
93 void InlineInstanceSetter(AstNode* node, | 93 void InlineInstanceSetter(AstNode* node, |
94 AstNode* receiver, | 94 AstNode* receiver, |
95 const String& field_name, | 95 const String& field_name, |
96 Register recv_reg, | 96 Register recv_reg, |
97 Register value_reg); | 97 Register value_reg); |
98 | 98 |
99 void CallDeoptimize(intptr_t node_id, intptr_t token_index); | 99 void CallDeoptimize(intptr_t node_id, intptr_t token_pos); |
100 | 100 |
101 void GenerateSmiUnaryOp(UnaryOpNode* node); | 101 void GenerateSmiUnaryOp(UnaryOpNode* node); |
102 void GenerateDoubleUnaryOp(UnaryOpNode* node); | 102 void GenerateDoubleUnaryOp(UnaryOpNode* node); |
103 | 103 |
104 void GenerateSmiBinaryOp(BinaryOpNode* node); | 104 void GenerateSmiBinaryOp(BinaryOpNode* node); |
105 void GenerateSmiShiftBinaryOp(BinaryOpNode* node); | 105 void GenerateSmiShiftBinaryOp(BinaryOpNode* node); |
106 | 106 |
107 void GenerateDoubleBinaryOp(BinaryOpNode* node, bool receiver_can_be_smi); | 107 void GenerateDoubleBinaryOp(BinaryOpNode* node, bool receiver_can_be_smi); |
108 void GenerateMintBinaryOp(BinaryOpNode* node, bool allow_smi); | 108 void GenerateMintBinaryOp(BinaryOpNode* node, bool allow_smi); |
109 void CheckIfDoubleOrSmi(Register reg, | 109 void CheckIfDoubleOrSmi(Register reg, |
110 Register temp, | 110 Register temp, |
111 Label* is_smi, | 111 Label* is_smi, |
112 Label* not_double_or_smi); | 112 Label* not_double_or_smi); |
113 void GenerateDirectCall(intptr_t node_id, | 113 void GenerateDirectCall(intptr_t node_id, |
114 intptr_t token_index, | 114 intptr_t token_pos, |
115 const Function& target, | 115 const Function& target, |
116 intptr_t arg_count, | 116 intptr_t arg_count, |
117 const Array& optional_argument_names); | 117 const Array& optional_argument_names); |
118 void GenerateCheckedInstanceCalls(AstNode* node, | 118 void GenerateCheckedInstanceCalls(AstNode* node, |
119 AstNode* receiver, | 119 AstNode* receiver, |
120 intptr_t token_index, | 120 intptr_t token_pos, |
121 intptr_t num_args, | 121 intptr_t num_args, |
122 const Array& optional_arguments_names); | 122 const Array& optional_arguments_names); |
123 void GenerateInlineCacheCall(intptr_t node_id, | 123 void GenerateInlineCacheCall(intptr_t node_id, |
124 intptr_t token_index, | 124 intptr_t token_pos, |
125 const ICData& ic_data, | 125 const ICData& ic_data, |
126 intptr_t num_args, | 126 intptr_t num_args, |
127 const Array& optional_arguments_names); | 127 const Array& optional_arguments_names); |
128 void NormalizeClassChecks(const ICData& ic_data, | 128 void NormalizeClassChecks(const ICData& ic_data, |
129 const Function& null_target, | 129 const Function& null_target, |
130 GrowableArray<const Class*>* classes, | 130 GrowableArray<const Class*>* classes, |
131 GrowableArray<const Function*>* targets); | 131 GrowableArray<const Function*>* targets); |
132 bool GenerateSmiComparison(ComparisonNode* node); | 132 bool GenerateSmiComparison(ComparisonNode* node); |
133 void GenerateSmiEquality(ComparisonNode* node); | 133 void GenerateSmiEquality(ComparisonNode* node); |
134 bool GenerateDoubleComparison(ComparisonNode* node); | 134 bool GenerateDoubleComparison(ComparisonNode* node); |
(...skipping 19 matching lines...) Expand all Loading... |
154 const Class& double_class_; | 154 const Class& double_class_; |
155 const Class& growable_object_array_class_; | 155 const Class& growable_object_array_class_; |
156 | 156 |
157 DISALLOW_IMPLICIT_CONSTRUCTORS(OptimizingCodeGenerator); | 157 DISALLOW_IMPLICIT_CONSTRUCTORS(OptimizingCodeGenerator); |
158 }; | 158 }; |
159 | 159 |
160 } // namespace dart | 160 } // namespace dart |
161 | 161 |
162 | 162 |
163 #endif // VM_OPT_CODE_GENERATOR_IA32_H_ | 163 #endif // VM_OPT_CODE_GENERATOR_IA32_H_ |
OLD | NEW |