| 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 VM_FLOW_GRAPH_COMPILER_X64_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_X64_H_ |
| 6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ | 6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ |
| 7 | 7 |
| 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ | 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
| 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. | 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. |
| 10 #endif | 10 #endif |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 const Array& argument_names, | 106 const Array& argument_names, |
| 107 intptr_t checked_argument_count); | 107 intptr_t checked_argument_count); |
| 108 | 108 |
| 109 void GenerateStaticCall(intptr_t cid, | 109 void GenerateStaticCall(intptr_t cid, |
| 110 intptr_t token_index, | 110 intptr_t token_index, |
| 111 intptr_t try_index, | 111 intptr_t try_index, |
| 112 const Function& function, | 112 const Function& function, |
| 113 intptr_t argument_count, | 113 intptr_t argument_count, |
| 114 const Array& argument_names); | 114 const Array& argument_names); |
| 115 | 115 |
| 116 virtual void GenerateInlinedMathSqrt(Label* done); |
| 117 |
| 116 void GenerateNumberTypeCheck(Register kClassIdReg, | 118 void GenerateNumberTypeCheck(Register kClassIdReg, |
| 117 const AbstractType& type, | 119 const AbstractType& type, |
| 118 Label* is_instance_lbl, | 120 Label* is_instance_lbl, |
| 119 Label* is_not_instance_lbl); | 121 Label* is_not_instance_lbl); |
| 120 void GenerateStringTypeCheck(Register kClassIdReg, | 122 void GenerateStringTypeCheck(Register kClassIdReg, |
| 121 Label* is_instance_lbl, | 123 Label* is_instance_lbl, |
| 122 Label* is_not_instance_lbl); | 124 Label* is_not_instance_lbl); |
| 123 void GenerateListTypeCheck(Register kClassIdReg, | 125 void GenerateListTypeCheck(Register kClassIdReg, |
| 124 Label* is_instance_lbl); | 126 Label* is_instance_lbl); |
| 125 | 127 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 Register reg3 = kNoRegister); | 164 Register reg3 = kNoRegister); |
| 163 | 165 |
| 164 void FinalizeExceptionHandlers(const Code& code); | 166 void FinalizeExceptionHandlers(const Code& code); |
| 165 void FinalizePcDescriptors(const Code& code); | 167 void FinalizePcDescriptors(const Code& code); |
| 166 void FinalizeStackmaps(const Code& code); | 168 void FinalizeStackmaps(const Code& code); |
| 167 void FinalizeVarDescriptors(const Code& code); | 169 void FinalizeVarDescriptors(const Code& code); |
| 168 void FinalizeComments(const Code& code); | 170 void FinalizeComments(const Code& code); |
| 169 | 171 |
| 170 const Bool& bool_true() const { return bool_true_; } | 172 const Bool& bool_true() const { return bool_true_; } |
| 171 const Bool& bool_false() const { return bool_false_; } | 173 const Bool& bool_false() const { return bool_false_; } |
| 174 const Class& double_class() const { return double_class_; } |
| 172 | 175 |
| 173 static const int kLocalsOffsetFromFP = (-1 * kWordSize); | 176 static const int kLocalsOffsetFromFP = (-1 * kWordSize); |
| 174 | 177 |
| 175 private: | 178 private: |
| 176 friend class DeoptimizationStub; | 179 friend class DeoptimizationStub; |
| 177 | 180 |
| 178 void GenerateDeferredCode(); | 181 void GenerateDeferredCode(); |
| 179 | 182 |
| 180 virtual void EmitInstructionPrologue(Instruction* instr); | 183 virtual void EmitInstructionPrologue(Instruction* instr); |
| 181 | 184 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 BlockEntryInstr* current_block_; | 267 BlockEntryInstr* current_block_; |
| 265 ExceptionHandlerList* exception_handlers_list_; | 268 ExceptionHandlerList* exception_handlers_list_; |
| 266 DescriptorList* pc_descriptors_list_; | 269 DescriptorList* pc_descriptors_list_; |
| 267 StackmapBuilder* stackmap_builder_; | 270 StackmapBuilder* stackmap_builder_; |
| 268 GrowableArray<BlockInfo*> block_info_; | 271 GrowableArray<BlockInfo*> block_info_; |
| 269 GrowableArray<DeoptimizationStub*> deopt_stubs_; | 272 GrowableArray<DeoptimizationStub*> deopt_stubs_; |
| 270 const bool is_optimizing_; | 273 const bool is_optimizing_; |
| 271 | 274 |
| 272 const Bool& bool_true_; | 275 const Bool& bool_true_; |
| 273 const Bool& bool_false_; | 276 const Bool& bool_false_; |
| 277 const Class& double_class_; |
| 274 | 278 |
| 275 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 279 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
| 276 }; | 280 }; |
| 277 | 281 |
| 278 | 282 |
| 279 class DeoptimizationStub : public ZoneAllocated { | 283 class DeoptimizationStub : public ZoneAllocated { |
| 280 public: | 284 public: |
| 281 DeoptimizationStub(intptr_t deopt_id, | 285 DeoptimizationStub(intptr_t deopt_id, |
| 282 intptr_t deopt_token_index, | 286 intptr_t deopt_token_index, |
| 283 intptr_t try_index, | 287 intptr_t try_index, |
| (...skipping 18 matching lines...) Expand all Loading... |
| 302 const DeoptReasonId reason_; | 306 const DeoptReasonId reason_; |
| 303 GrowableArray<Register> registers_; | 307 GrowableArray<Register> registers_; |
| 304 Label entry_label_; | 308 Label entry_label_; |
| 305 | 309 |
| 306 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); | 310 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); |
| 307 }; | 311 }; |
| 308 | 312 |
| 309 } // namespace dart | 313 } // namespace dart |
| 310 | 314 |
| 311 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ | 315 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ |
| OLD | NEW |