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_X64_LITHIUM_X64_H_ | 5 #ifndef V8_X64_LITHIUM_X64_H_ |
6 #define V8_X64_LITHIUM_X64_H_ | 6 #define V8_X64_LITHIUM_X64_H_ |
7 | 7 |
8 #include "hydrogen.h" | 8 #include "hydrogen.h" |
9 #include "lithium-allocator.h" | 9 #include "lithium-allocator.h" |
10 #include "lithium.h" | 10 #include "lithium.h" |
(...skipping 2788 matching lines...) Loading... |
2799 | 2799 |
2800 // Marks a call for the register allocator. Assigns a pointer map to | 2800 // Marks a call for the register allocator. Assigns a pointer map to |
2801 // support GC and lazy deoptimization. Assigns an environment to support | 2801 // support GC and lazy deoptimization. Assigns an environment to support |
2802 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. | 2802 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. |
2803 LInstruction* MarkAsCall( | 2803 LInstruction* MarkAsCall( |
2804 LInstruction* instr, | 2804 LInstruction* instr, |
2805 HInstruction* hinstr, | 2805 HInstruction* hinstr, |
2806 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); | 2806 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); |
2807 | 2807 |
2808 void VisitInstruction(HInstruction* current); | 2808 void VisitInstruction(HInstruction* current); |
| 2809 void CheckAndAddInstruction(LInstruction* instr, HInstruction* current); |
2809 | 2810 |
2810 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block); | 2811 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block); |
2811 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr); | 2812 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr); |
2812 LInstruction* DoArithmeticD(Token::Value op, | 2813 LInstruction* DoArithmeticD(Token::Value op, |
2813 HArithmeticBinaryOperation* instr); | 2814 HArithmeticBinaryOperation* instr); |
2814 LInstruction* DoArithmeticT(Token::Value op, | 2815 LInstruction* DoArithmeticT(Token::Value op, |
2815 HBinaryOperation* instr); | 2816 HBinaryOperation* instr); |
2816 void FindDehoistedKeyDefinitions(HValue* candidate); | 2817 void FindDehoistedKeyDefinitions(HValue* candidate); |
2817 | 2818 |
2818 LPlatformChunk* chunk_; | 2819 LPlatformChunk* chunk_; |
2819 CompilationInfo* info_; | 2820 CompilationInfo* info_; |
2820 HGraph* const graph_; | 2821 HGraph* const graph_; |
2821 Status status_; | 2822 Status status_; |
2822 HInstruction* current_instruction_; | 2823 HInstruction* current_instruction_; |
2823 HBasicBlock* current_block_; | 2824 HBasicBlock* current_block_; |
2824 HBasicBlock* next_block_; | 2825 HBasicBlock* next_block_; |
2825 LAllocator* allocator_; | 2826 LAllocator* allocator_; |
2826 | 2827 |
2827 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2828 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2828 }; | 2829 }; |
2829 | 2830 |
2830 #undef DECLARE_HYDROGEN_ACCESSOR | 2831 #undef DECLARE_HYDROGEN_ACCESSOR |
2831 #undef DECLARE_CONCRETE_INSTRUCTION | 2832 #undef DECLARE_CONCRETE_INSTRUCTION |
2832 | 2833 |
2833 } } // namespace v8::int | 2834 } } // namespace v8::int |
2834 | 2835 |
2835 #endif // V8_X64_LITHIUM_X64_H_ | 2836 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |