| 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_IA32_LITHIUM_CODEGEN_IA32_H_ | 5 #ifndef V8_CRANKSHAFT_IA32_LITHIUM_CODEGEN_IA32_H_ |
| 6 #define V8_CRANKSHAFT_IA32_LITHIUM_CODEGEN_IA32_H_ | 6 #define V8_CRANKSHAFT_IA32_LITHIUM_CODEGEN_IA32_H_ |
| 7 | 7 |
| 8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
| 9 #include "src/base/logging.h" | 9 #include "src/base/logging.h" |
| 10 #include "src/crankshaft/ia32/lithium-gap-resolver-ia32.h" | 10 #include "src/crankshaft/ia32/lithium-gap-resolver-ia32.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 class LGapNode; | 22 class LGapNode; |
| 23 class SafepointGenerator; | 23 class SafepointGenerator; |
| 24 | 24 |
| 25 class LCodeGen: public LCodeGenBase { | 25 class LCodeGen: public LCodeGenBase { |
| 26 public: | 26 public: |
| 27 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) | 27 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) |
| 28 : LCodeGenBase(chunk, assembler, info), | 28 : LCodeGenBase(chunk, assembler, info), |
| 29 jump_table_(4, info->zone()), | 29 jump_table_(4, info->zone()), |
| 30 scope_(info->scope()), | 30 scope_(info->scope()), |
| 31 deferred_(8, info->zone()), | 31 deferred_(8, info->zone()), |
| 32 dynamic_frame_alignment_(false), | |
| 33 support_aligned_spilled_doubles_(false), | |
| 34 frame_is_built_(false), | 32 frame_is_built_(false), |
| 35 safepoints_(info->zone()), | 33 safepoints_(info->zone()), |
| 36 resolver_(this), | 34 resolver_(this), |
| 37 expected_safepoint_kind_(Safepoint::kSimple) { | 35 expected_safepoint_kind_(Safepoint::kSimple) { |
| 38 PopulateDeoptimizationLiteralsWithInlinedFunctions(); | 36 PopulateDeoptimizationLiteralsWithInlinedFunctions(); |
| 39 } | 37 } |
| 40 | 38 |
| 41 int LookupDestination(int block_id) const { | 39 int LookupDestination(int block_id) const { |
| 42 return chunk()->LookupDestination(block_id); | 40 return chunk()->LookupDestination(block_id); |
| 43 } | 41 } |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 void DoLoadKeyedFixedArray(LLoadKeyed* instr); | 291 void DoLoadKeyedFixedArray(LLoadKeyed* instr); |
| 294 void DoStoreKeyedExternalArray(LStoreKeyed* instr); | 292 void DoStoreKeyedExternalArray(LStoreKeyed* instr); |
| 295 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); | 293 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); |
| 296 void DoStoreKeyedFixedArray(LStoreKeyed* instr); | 294 void DoStoreKeyedFixedArray(LStoreKeyed* instr); |
| 297 | 295 |
| 298 template <class T> | 296 template <class T> |
| 299 void EmitVectorLoadICRegisters(T* instr); | 297 void EmitVectorLoadICRegisters(T* instr); |
| 300 template <class T> | 298 template <class T> |
| 301 void EmitVectorStoreICRegisters(T* instr); | 299 void EmitVectorStoreICRegisters(T* instr); |
| 302 | 300 |
| 303 void EmitReturn(LReturn* instr, bool dynamic_frame_alignment); | 301 void EmitReturn(LReturn* instr); |
| 304 | 302 |
| 305 // Emits code for pushing either a tagged constant, a (non-double) | 303 // Emits code for pushing either a tagged constant, a (non-double) |
| 306 // register, or a stack slot operand. | 304 // register, or a stack slot operand. |
| 307 void EmitPushTaggedOperand(LOperand* operand); | 305 void EmitPushTaggedOperand(LOperand* operand); |
| 308 | 306 |
| 309 friend class LGapResolver; | 307 friend class LGapResolver; |
| 310 | 308 |
| 311 #ifdef _MSC_VER | 309 #ifdef _MSC_VER |
| 312 // On windows, you may not access the stack more than one page below | 310 // On windows, you may not access the stack more than one page below |
| 313 // the most recently mapped page. To make the allocated area randomly | 311 // the most recently mapped page. To make the allocated area randomly |
| 314 // accessible, we write an arbitrary value to each page in range | 312 // accessible, we write an arbitrary value to each page in range |
| 315 // esp + offset - page_size .. esp in turn. | 313 // esp + offset - page_size .. esp in turn. |
| 316 void MakeSureStackPagesMapped(int offset); | 314 void MakeSureStackPagesMapped(int offset); |
| 317 #endif | 315 #endif |
| 318 | 316 |
| 319 ZoneList<Deoptimizer::JumpTableEntry> jump_table_; | 317 ZoneList<Deoptimizer::JumpTableEntry> jump_table_; |
| 320 Scope* const scope_; | 318 Scope* const scope_; |
| 321 ZoneList<LDeferredCode*> deferred_; | 319 ZoneList<LDeferredCode*> deferred_; |
| 322 bool dynamic_frame_alignment_; | |
| 323 bool support_aligned_spilled_doubles_; | |
| 324 bool frame_is_built_; | 320 bool frame_is_built_; |
| 325 | 321 |
| 326 // Builder that keeps track of safepoints in the code. The table | 322 // Builder that keeps track of safepoints in the code. The table |
| 327 // itself is emitted at the end of the generated code. | 323 // itself is emitted at the end of the generated code. |
| 328 SafepointTableBuilder safepoints_; | 324 SafepointTableBuilder safepoints_; |
| 329 | 325 |
| 330 // Compiler from a set of parallel moves to a sequential list of moves. | 326 // Compiler from a set of parallel moves to a sequential list of moves. |
| 331 LGapResolver resolver_; | 327 LGapResolver resolver_; |
| 332 | 328 |
| 333 Safepoint::Kind expected_safepoint_kind_; | 329 Safepoint::Kind expected_safepoint_kind_; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 Label exit_; | 384 Label exit_; |
| 389 Label* external_exit_; | 385 Label* external_exit_; |
| 390 Label done_; | 386 Label done_; |
| 391 int instruction_index_; | 387 int instruction_index_; |
| 392 }; | 388 }; |
| 393 | 389 |
| 394 } // namespace internal | 390 } // namespace internal |
| 395 } // namespace v8 | 391 } // namespace v8 |
| 396 | 392 |
| 397 #endif // V8_CRANKSHAFT_IA32_LITHIUM_CODEGEN_IA32_H_ | 393 #endif // V8_CRANKSHAFT_IA32_LITHIUM_CODEGEN_IA32_H_ |
| OLD | NEW |