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_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
6 #define VM_FLOW_GRAPH_COMPILER_H_ | 6 #define 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 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 intptr_t argument_count, | 324 intptr_t argument_count, |
325 const Array& argument_names, | 325 const Array& argument_names, |
326 LocationSummary* locs, | 326 LocationSummary* locs, |
327 const ICData& ic_data); | 327 const ICData& ic_data); |
328 | 328 |
329 void GenerateStaticCall(intptr_t deopt_id, | 329 void GenerateStaticCall(intptr_t deopt_id, |
330 intptr_t token_pos, | 330 intptr_t token_pos, |
331 const Function& function, | 331 const Function& function, |
332 intptr_t argument_count, | 332 intptr_t argument_count, |
333 const Array& argument_names, | 333 const Array& argument_names, |
334 LocationSummary* locs); | 334 LocationSummary* locs, |
| 335 const ICData& ic_data); |
335 | 336 |
336 void GenerateNumberTypeCheck(Register kClassIdReg, | 337 void GenerateNumberTypeCheck(Register kClassIdReg, |
337 const AbstractType& type, | 338 const AbstractType& type, |
338 Label* is_instance_lbl, | 339 Label* is_instance_lbl, |
339 Label* is_not_instance_lbl); | 340 Label* is_not_instance_lbl); |
340 void GenerateStringTypeCheck(Register kClassIdReg, | 341 void GenerateStringTypeCheck(Register kClassIdReg, |
341 Label* is_instance_lbl, | 342 Label* is_instance_lbl, |
342 Label* is_not_instance_lbl); | 343 Label* is_not_instance_lbl); |
343 void GenerateListTypeCheck(Register kClassIdReg, | 344 void GenerateListTypeCheck(Register kClassIdReg, |
344 Label* is_instance_lbl); | 345 Label* is_instance_lbl); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 // Emit code to load a Value into register 'dst'. | 469 // Emit code to load a Value into register 'dst'. |
469 void LoadValue(Register dst, Value* value); | 470 void LoadValue(Register dst, Value* value); |
470 | 471 |
471 void EmitOptimizedStaticCall(const Function& function, | 472 void EmitOptimizedStaticCall(const Function& function, |
472 const Array& arguments_descriptor, | 473 const Array& arguments_descriptor, |
473 intptr_t argument_count, | 474 intptr_t argument_count, |
474 intptr_t deopt_id, | 475 intptr_t deopt_id, |
475 intptr_t token_pos, | 476 intptr_t token_pos, |
476 LocationSummary* locs); | 477 LocationSummary* locs); |
477 | 478 |
478 void EmitUnoptimizedStaticCall(const Function& function, | 479 void EmitUnoptimizedStaticCall(intptr_t argument_count, |
479 const Array& arguments_descriptor, | |
480 intptr_t argument_count, | |
481 intptr_t deopt_id, | 480 intptr_t deopt_id, |
482 intptr_t token_pos, | 481 intptr_t token_pos, |
483 LocationSummary* locs); | 482 LocationSummary* locs, |
| 483 const ICData& ic_data); |
484 | 484 |
485 // Type checking helper methods. | 485 // Type checking helper methods. |
486 void CheckClassIds(Register class_id_reg, | 486 void CheckClassIds(Register class_id_reg, |
487 const GrowableArray<intptr_t>& class_ids, | 487 const GrowableArray<intptr_t>& class_ids, |
488 Label* is_instance_lbl, | 488 Label* is_instance_lbl, |
489 Label* is_not_instance_lbl); | 489 Label* is_not_instance_lbl); |
490 | 490 |
491 RawSubtypeTestCache* GenerateInlineInstanceof(intptr_t token_pos, | 491 RawSubtypeTestCache* GenerateInlineInstanceof(intptr_t token_pos, |
492 const AbstractType& type, | 492 const AbstractType& type, |
493 Label* is_instance_lbl, | 493 Label* is_instance_lbl, |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 intptr_t entry_patch_pc_offset_; | 597 intptr_t entry_patch_pc_offset_; |
598 intptr_t patch_code_pc_offset_; | 598 intptr_t patch_code_pc_offset_; |
599 intptr_t lazy_deopt_pc_offset_; | 599 intptr_t lazy_deopt_pc_offset_; |
600 | 600 |
601 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 601 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
602 }; | 602 }; |
603 | 603 |
604 } // namespace dart | 604 } // namespace dart |
605 | 605 |
606 #endif // VM_FLOW_GRAPH_COMPILER_H_ | 606 #endif // VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |