Chromium Code Reviews| Index: src/ia32/lithium-codegen-ia32.h |
| diff --git a/src/ia32/lithium-codegen-ia32.h b/src/ia32/lithium-codegen-ia32.h |
| index a813b3c542104e81dd6dd6f43a5dbd3e9bf4fdd6..01d8581a131a33bcb647573cb3901eb845089a70 100644 |
| --- a/src/ia32/lithium-codegen-ia32.h |
| +++ b/src/ia32/lithium-codegen-ia32.h |
| @@ -32,6 +32,7 @@ |
| #include "checks.h" |
| #include "deoptimizer.h" |
| +#include "lithium-codegen.h" |
|
Michael Starzinger
2013/10/01 11:17:47
nit: Can we alpha-sort the includes.
danno
2013/10/23 11:46:51
Done.
|
| #include "ia32/lithium-gap-resolver-ia32.h" |
| #include "safepoint-table.h" |
| #include "scopes.h" |
| @@ -45,28 +46,20 @@ class LDeferredCode; |
| class LGapNode; |
| class SafepointGenerator; |
| -class LCodeGen V8_FINAL BASE_EMBEDDED { |
| +class LCodeGen: public LCodeGenBase { |
| public: |
| LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) |
| - : zone_(info->zone()), |
| - chunk_(static_cast<LPlatformChunk*>(chunk)), |
| - masm_(assembler), |
| - info_(info), |
| - current_block_(-1), |
| - current_instruction_(-1), |
| - instructions_(chunk->instructions()), |
| + : LCodeGenBase(chunk, assembler, info), |
| deoptimizations_(4, info->zone()), |
| jump_table_(4, info->zone()), |
| deoptimization_literals_(8, info->zone()), |
| inlined_function_count_(0), |
| scope_(info->scope()), |
| - status_(UNUSED), |
| translations_(info->zone()), |
| deferred_(8, info->zone()), |
| dynamic_frame_alignment_(false), |
| support_aligned_spilled_doubles_(false), |
| osr_pc_offset_(-1), |
| - last_lazy_deopt_pc_(0), |
| frame_is_built_(false), |
| x87_stack_(assembler), |
| safepoints_(info->zone()), |
| @@ -76,14 +69,6 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| PopulateDeoptimizationLiteralsWithInlinedFunctions(); |
| } |
| - // Simple accessors. |
| - MacroAssembler* masm() const { return masm_; } |
| - CompilationInfo* info() const { return info_; } |
| - Isolate* isolate() const { return info_->isolate(); } |
| - Factory* factory() const { return isolate()->factory(); } |
| - Heap* heap() const { return isolate()->heap(); } |
| - Zone* zone() const { return zone_; } |
| - |
| int LookupDestination(int block_id) const { |
| return chunk()->LookupDestination(block_id); |
| } |
| @@ -189,30 +174,14 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| #undef DECLARE_DO |
| private: |
| - enum Status { |
| - UNUSED, |
| - GENERATING, |
| - DONE, |
| - ABORTED |
| - }; |
| - |
| - bool is_unused() const { return status_ == UNUSED; } |
| - bool is_generating() const { return status_ == GENERATING; } |
| - bool is_done() const { return status_ == DONE; } |
| - bool is_aborted() const { return status_ == ABORTED; } |
| - |
| StrictModeFlag strict_mode_flag() const { |
| return info()->is_classic_mode() ? kNonStrictMode : kStrictMode; |
| } |
| - LPlatformChunk* chunk() const { return chunk_; } |
| Scope* scope() const { return scope_; } |
| - HGraph* graph() const { return chunk()->graph(); } |
| XMMRegister double_scratch0() const { return xmm0; } |
| - int GetNextEmittedBlock() const; |
| - |
| void EmitClassOfTest(Label* if_true, |
| Label* if_false, |
| Handle<String> class_name, |
| @@ -223,14 +192,14 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| int GetStackSlotCount() const { return chunk()->spill_slot_count(); } |
| void Abort(BailoutReason reason); |
| - void FPRINTF_CHECKING Comment(const char* format, ...); |
| void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } |
| // Code generation passes. Returns true if code generation should |
| // continue. |
| + void GenerateBodyInstructionPre(LInstruction* instr) V8_OVERRIDE; |
| + void GenerateBodyInstructionPost(LInstruction* instr) V8_OVERRIDE; |
| bool GeneratePrologue(); |
| - bool GenerateBody(); |
| bool GenerateDeferredCode(); |
| bool GenerateJumpTable(); |
| bool GenerateSafepointTable(); |
| @@ -336,7 +305,7 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| Safepoint::DeoptMode mode); |
| void RecordPosition(int position); |
| - void RecordAndUpdatePosition(int position); |
| + void RecordAndUpdatePosition(int position) V8_OVERRIDE; |
| static Condition TokenToCondition(Token::Value op, bool is_unsigned); |
| void EmitGoto(int block); |
| @@ -398,7 +367,7 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| int* offset, |
| AllocationSiteMode mode); |
| - void EnsureSpaceForLazyDeopt(); |
| + void EnsureSpaceForLazyDeopt(int space_needed) V8_OVERRIDE; |
| void DoLoadKeyedExternalArray(LLoadKeyed* instr); |
| void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); |
| void DoLoadKeyedFixedArray(LLoadKeyed* instr); |
| @@ -428,26 +397,16 @@ class LCodeGen V8_FINAL BASE_EMBEDDED { |
| void MakeSureStackPagesMapped(int offset); |
| #endif |
| - Zone* zone_; |
| - LPlatformChunk* const chunk_; |
| - MacroAssembler* const masm_; |
| - CompilationInfo* const info_; |
| - |
| - int current_block_; |
| - int current_instruction_; |
| - const ZoneList<LInstruction*>* instructions_; |
| ZoneList<LEnvironment*> deoptimizations_; |
| ZoneList<Deoptimizer::JumpTableEntry> jump_table_; |
| ZoneList<Handle<Object> > deoptimization_literals_; |
| int inlined_function_count_; |
| Scope* const scope_; |
| - Status status_; |
| TranslationBuffer translations_; |
| ZoneList<LDeferredCode*> deferred_; |
| bool dynamic_frame_alignment_; |
| bool support_aligned_spilled_doubles_; |
| int osr_pc_offset_; |
| - int last_lazy_deopt_pc_; |
| bool frame_is_built_; |
| class X87Stack { |