| 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 | 84 |
| 85 void GenerateSmiBinaryOp(BinaryOpNode* node); | 85 void GenerateSmiBinaryOp(BinaryOpNode* node); |
| 86 void GenerateSmiShiftBinaryOp(BinaryOpNode* node); | 86 void GenerateSmiShiftBinaryOp(BinaryOpNode* node); |
| 87 | 87 |
| 88 void GenerateDoubleBinaryOp(BinaryOpNode* node); | 88 void GenerateDoubleBinaryOp(BinaryOpNode* node); |
| 89 void GenerateMintBinaryOp(BinaryOpNode* node, bool allow_smi); | 89 void GenerateMintBinaryOp(BinaryOpNode* node, bool allow_smi); |
| 90 void CheckIfDoubleOrSmi(Register reg, | 90 void CheckIfDoubleOrSmi(Register reg, |
| 91 Register temp, | 91 Register temp, |
| 92 Label* is_smi, | 92 Label* is_smi, |
| 93 Label* not_double_or_smi); | 93 Label* not_double_or_smi); |
| 94 void GenerateDirectCall(intptr_t node_id, |
| 95 intptr_t token_index, |
| 96 Function& target, |
| 97 intptr_t arg_count, |
| 98 const Array& optional_argument_names); |
| 99 void GenerateCheckedInstanceCalls(AstNode* node, |
| 100 AstNode* receiver, |
| 101 intptr_t node_id, |
| 102 intptr_t token_index, |
| 103 intptr_t num_args, |
| 104 const Array& optional_argument_names); |
| 94 bool GenerateSmiComparison(ComparisonNode* node); | 105 bool GenerateSmiComparison(ComparisonNode* node); |
| 95 bool GenerateDoubleComparison(ComparisonNode* node); | 106 bool GenerateDoubleComparison(ComparisonNode* node); |
| 96 bool GenerateEqualityComparison(ComparisonNode* node); | 107 bool GenerateEqualityComparison(ComparisonNode* node); |
| 97 void GenerateLogicalBinaryOp(BinaryOpNode* node); | 108 void GenerateLogicalBinaryOp(BinaryOpNode* node); |
| 98 void GenerateConditionalJumps(const CodeGenInfo& nInfo, Condition condition); | 109 void GenerateConditionalJumps(const CodeGenInfo& nInfo, Condition condition); |
| 99 bool TryInlineInstanceCall(InstanceCallNode* node); | 110 bool TryInlineInstanceCall(InstanceCallNode* node); |
| 100 bool TryInlineStaticCall(StaticCallNode* node); | 111 bool TryInlineStaticCall(StaticCallNode* node); |
| 101 bool GenerateCheckedInstanceCalls(InstanceCallNode* node); | |
| 102 void GenerateDirectInstanceCall(InstanceCallNode* node, const Class& cls); | |
| 103 | 112 |
| 104 bool IsResultInEaxRequested(AstNode* node) const; | 113 bool IsResultInEaxRequested(AstNode* node) const; |
| 105 bool NodeMayBeSmi(AstNode* node) const; | 114 bool NodeMayBeSmi(AstNode* node) const; |
| 106 | 115 |
| 107 void PrintCollectedClasses(AstNode* node); | 116 void PrintCollectedClasses(AstNode* node); |
| 108 void TraceOpt(AstNode* node, const char* message); | 117 void TraceOpt(AstNode* node, const char* message); |
| 109 void TraceNotOpt(AstNode* node, const char* message); | 118 void TraceNotOpt(AstNode* node, const char* message); |
| 110 | 119 |
| 111 GrowableArray<DeoptimizationBlob*> deoptimization_blobs_; | 120 GrowableArray<DeoptimizationBlob*> deoptimization_blobs_; |
| 112 const Class& smi_class_; | 121 const Class& smi_class_; |
| 113 const Class& double_class_; | 122 const Class& double_class_; |
| 114 | 123 |
| 115 DISALLOW_IMPLICIT_CONSTRUCTORS(OptimizingCodeGenerator); | 124 DISALLOW_IMPLICIT_CONSTRUCTORS(OptimizingCodeGenerator); |
| 116 }; | 125 }; |
| 117 | 126 |
| 118 } // namespace dart | 127 } // namespace dart |
| 119 | 128 |
| 120 | 129 |
| 121 #endif // VM_OPT_CODE_GENERATOR_IA32_H_ | 130 #endif // VM_OPT_CODE_GENERATOR_IA32_H_ |
| OLD | NEW |