| 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 |