| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_COMPILER_CODE_GENERATOR_H_ | 5 #ifndef V8_COMPILER_CODE_GENERATOR_H_ |
| 6 #define V8_COMPILER_CODE_GENERATOR_H_ | 6 #define V8_COMPILER_CODE_GENERATOR_H_ |
| 7 | 7 |
| 8 #include "src/compiler.h" | |
| 9 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
| 10 #include "src/compiler/instruction.h" | 9 #include "src/compiler/instruction.h" |
| 11 #include "src/compiler/unwinding-info-writer.h" | 10 #include "src/compiler/unwinding-info-writer.h" |
| 12 #include "src/deoptimizer.h" | 11 #include "src/deoptimizer.h" |
| 13 #include "src/macro-assembler.h" | 12 #include "src/macro-assembler.h" |
| 14 #include "src/safepoint-table.h" | 13 #include "src/safepoint-table.h" |
| 15 #include "src/source-position-table.h" | 14 #include "src/source-position-table.h" |
| 16 | 15 |
| 17 namespace v8 { | 16 namespace v8 { |
| 18 namespace internal { | 17 namespace internal { |
| 18 |
| 19 class CompilationInfo; |
| 20 |
| 19 namespace compiler { | 21 namespace compiler { |
| 20 | 22 |
| 21 // Forward declarations. | 23 // Forward declarations. |
| 22 class DeoptimizationExit; | 24 class DeoptimizationExit; |
| 23 class FrameAccessState; | 25 class FrameAccessState; |
| 24 class Linkage; | 26 class Linkage; |
| 25 class OutOfLineCode; | 27 class OutOfLineCode; |
| 26 | 28 |
| 27 struct BranchInfo { | 29 struct BranchInfo { |
| 28 FlagsCondition condition; | 30 FlagsCondition condition; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 51 public: | 53 public: |
| 52 explicit CodeGenerator(Frame* frame, Linkage* linkage, | 54 explicit CodeGenerator(Frame* frame, Linkage* linkage, |
| 53 InstructionSequence* code, CompilationInfo* info); | 55 InstructionSequence* code, CompilationInfo* info); |
| 54 | 56 |
| 55 // Generate native code. | 57 // Generate native code. |
| 56 Handle<Code> GenerateCode(); | 58 Handle<Code> GenerateCode(); |
| 57 | 59 |
| 58 InstructionSequence* code() const { return code_; } | 60 InstructionSequence* code() const { return code_; } |
| 59 FrameAccessState* frame_access_state() const { return frame_access_state_; } | 61 FrameAccessState* frame_access_state() const { return frame_access_state_; } |
| 60 const Frame* frame() const { return frame_access_state_->frame(); } | 62 const Frame* frame() const { return frame_access_state_->frame(); } |
| 61 Isolate* isolate() const { return info_->isolate(); } | 63 Isolate* isolate() const; |
| 62 Linkage* linkage() const { return linkage_; } | 64 Linkage* linkage() const { return linkage_; } |
| 63 | 65 |
| 64 Label* GetLabel(RpoNumber rpo) { return &labels_[rpo.ToSize()]; } | 66 Label* GetLabel(RpoNumber rpo) { return &labels_[rpo.ToSize()]; } |
| 65 | 67 |
| 66 private: | 68 private: |
| 67 MacroAssembler* masm() { return &masm_; } | 69 MacroAssembler* masm() { return &masm_; } |
| 68 GapResolver* resolver() { return &resolver_; } | 70 GapResolver* resolver() { return &resolver_; } |
| 69 SafepointTableBuilder* safepoints() { return &safepoints_; } | 71 SafepointTableBuilder* safepoints() { return &safepoints_; } |
| 70 Zone* zone() const { return code()->zone(); } | 72 Zone* zone() const { return code()->zone(); } |
| 71 CompilationInfo* info() const { return info_; } | 73 CompilationInfo* info() const { return info_; } |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 OutOfLineCode* ools_; | 282 OutOfLineCode* ools_; |
| 281 int osr_pc_offset_; | 283 int osr_pc_offset_; |
| 282 SourcePositionTableBuilder source_position_table_builder_; | 284 SourcePositionTableBuilder source_position_table_builder_; |
| 283 }; | 285 }; |
| 284 | 286 |
| 285 } // namespace compiler | 287 } // namespace compiler |
| 286 } // namespace internal | 288 } // namespace internal |
| 287 } // namespace v8 | 289 } // namespace v8 |
| 288 | 290 |
| 289 #endif // V8_COMPILER_CODE_GENERATOR_H | 291 #endif // V8_COMPILER_CODE_GENERATOR_H |
| OLD | NEW |