OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_CRANKSHAFT_LITHIUM_H_ | 5 #ifndef V8_CRANKSHAFT_LITHIUM_H_ |
6 #define V8_CRANKSHAFT_LITHIUM_H_ | 6 #define V8_CRANKSHAFT_LITHIUM_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 | 738 |
739 bool is_unused() const { return status_ == UNUSED; } | 739 bool is_unused() const { return status_ == UNUSED; } |
740 bool is_building() const { return status_ == BUILDING; } | 740 bool is_building() const { return status_ == BUILDING; } |
741 bool is_done() const { return status_ == DONE; } | 741 bool is_done() const { return status_ == DONE; } |
742 bool is_aborted() const { return status_ == ABORTED; } | 742 bool is_aborted() const { return status_ == ABORTED; } |
743 | 743 |
744 // An input operand in register, stack slot or a constant operand. | 744 // An input operand in register, stack slot or a constant operand. |
745 // Will not be moved to a register even if one is freely available. | 745 // Will not be moved to a register even if one is freely available. |
746 virtual MUST_USE_RESULT LOperand* UseAny(HValue* value) = 0; | 746 virtual MUST_USE_RESULT LOperand* UseAny(HValue* value) = 0; |
747 | 747 |
| 748 // Constructs proper environment for a lazy bailout point after call, creates |
| 749 // LLazyBailout instruction and adds it to current block. |
| 750 void CreateLazyBailoutForCall(HBasicBlock* current_block, LInstruction* instr, |
| 751 HInstruction* hydrogen_val); |
| 752 |
748 // Assigns given environment to an instruction. An instruction which can | 753 // Assigns given environment to an instruction. An instruction which can |
749 // deoptimize must have an environment. | 754 // deoptimize must have an environment. |
750 LInstruction* AssignEnvironment(LInstruction* instr, | 755 LInstruction* AssignEnvironment(LInstruction* instr, |
751 HEnvironment* hydrogen_env); | 756 HEnvironment* hydrogen_env); |
752 | 757 |
753 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, | 758 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, |
754 int* argument_index_accumulator, | 759 int* argument_index_accumulator, |
755 ZoneList<HValue*>* objects_to_materialize); | 760 ZoneList<HValue*>* objects_to_materialize); |
756 void AddObjectToMaterialize(HValue* value, | 761 void AddObjectToMaterialize(HValue* value, |
757 ZoneList<HValue*>* objects_to_materialize, | 762 ZoneList<HValue*>* objects_to_materialize, |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 InputIterator input_iterator_; | 847 InputIterator input_iterator_; |
843 DeepIterator env_iterator_; | 848 DeepIterator env_iterator_; |
844 }; | 849 }; |
845 | 850 |
846 class LInstruction; | 851 class LInstruction; |
847 class LCodeGen; | 852 class LCodeGen; |
848 } // namespace internal | 853 } // namespace internal |
849 } // namespace v8 | 854 } // namespace v8 |
850 | 855 |
851 #endif // V8_CRANKSHAFT_LITHIUM_H_ | 856 #endif // V8_CRANKSHAFT_LITHIUM_H_ |
OLD | NEW |