| Index: src/x64/lithium-codegen-x64.h
|
| diff --git a/src/x64/lithium-codegen-x64.h b/src/x64/lithium-codegen-x64.h
|
| index 2cd3e2e8e1a6eac3a0ece9ed734fa0af7e64ca54..e6855637c1c1ba852093791d073eb1a0b57a39b0 100644
|
| --- a/src/x64/lithium-codegen-x64.h
|
| +++ b/src/x64/lithium-codegen-x64.h
|
| @@ -32,6 +32,7 @@
|
|
|
| #include "checks.h"
|
| #include "deoptimizer.h"
|
| +#include "lithium-codegen.h"
|
| #include "safepoint-table.h"
|
| #include "scopes.h"
|
| #include "v8utils.h"
|
| @@ -44,26 +45,18 @@ namespace internal {
|
| class LDeferredCode;
|
| 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()),
|
| osr_pc_offset_(-1),
|
| - last_lazy_deopt_pc_(0),
|
| frame_is_built_(false),
|
| safepoints_(info->zone()),
|
| resolver_(this),
|
| @@ -72,14 +65,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);
|
| }
|
| @@ -146,18 +131,6 @@ 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;
|
| }
|
| @@ -168,8 +141,6 @@ class LCodeGen V8_FINAL BASE_EMBEDDED {
|
|
|
| XMMRegister double_scratch0() const { return xmm0; }
|
|
|
| - int GetNextEmittedBlock() const;
|
| -
|
| void EmitClassOfTest(Label* if_true,
|
| Label* if_false,
|
| Handle<String> class_name,
|
| @@ -180,14 +151,12 @@ 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.
|
| bool GeneratePrologue();
|
| - bool GenerateBody();
|
| bool GenerateDeferredCode();
|
| bool GenerateJumpTable();
|
| bool GenerateSafepointTable();
|
| @@ -288,7 +257,7 @@ class LCodeGen V8_FINAL BASE_EMBEDDED {
|
| int arguments,
|
| 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);
|
| @@ -343,7 +312,7 @@ class LCodeGen V8_FINAL BASE_EMBEDDED {
|
| int* offset,
|
| AllocationSiteMode mode);
|
|
|
| - void EnsureSpaceForLazyDeopt(int space_needed);
|
| + void EnsureSpaceForLazyDeopt(int space_needed) V8_OVERRIDE;
|
| void DoLoadKeyedExternalArray(LLoadKeyed* instr);
|
| void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr);
|
| void DoLoadKeyedFixedArray(LLoadKeyed* instr);
|
| @@ -358,24 +327,14 @@ 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_;
|
| int osr_pc_offset_;
|
| - int last_lazy_deopt_pc_;
|
| bool frame_is_built_;
|
|
|
| // Builder that keeps track of safepoints in the code. The table
|
|
|