| Index: src/mips/lithium-codegen-mips.h | 
| diff --git a/src/mips/lithium-codegen-mips.h b/src/mips/lithium-codegen-mips.h | 
| index 90bf4858e3e6962e9bdabbfabcace1e517b6b48a..e3d3a600bea9c5fb1fb288564999e58093e8cbde 100644 | 
| --- a/src/mips/lithium-codegen-mips.h | 
| +++ b/src/mips/lithium-codegen-mips.h | 
| @@ -31,6 +31,7 @@ | 
| #include "deoptimizer.h" | 
| #include "mips/lithium-gap-resolver-mips.h" | 
| #include "mips/lithium-mips.h" | 
| +#include "lithium-codegen.h" | 
| #include "safepoint-table.h" | 
| #include "scopes.h" | 
| #include "v8utils.h" | 
| @@ -42,26 +43,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()), | 
| deopt_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), | 
| @@ -71,14 +64,6 @@ class LCodeGen V8_FINAL  BASE_EMBEDDED { | 
| } | 
|  | 
|  | 
| -  // 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); | 
| } | 
| @@ -177,31 +162,16 @@ 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(); } | 
|  | 
| Register scratch0() { return kLithiumScratchReg; } | 
| Register scratch1() { return kLithiumScratchReg2; } | 
| DoubleRegister double_scratch0() { return kLithiumScratchDouble; } | 
|  | 
| -  int GetNextEmittedBlock() const; | 
| LInstruction* GetNextInstruction(); | 
|  | 
| void EmitClassOfTest(Label* if_true, | 
| @@ -214,14 +184,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 GenerateDeoptJumpTable(); | 
| bool GenerateSafepointTable(); | 
| @@ -328,7 +296,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); | 
| @@ -407,7 +375,7 @@ class LCodeGen V8_FINAL  BASE_EMBEDDED { | 
| LEnvironment* environment); | 
|  | 
|  | 
| -  void EnsureSpaceForLazyDeopt(); | 
| +  void EnsureSpaceForLazyDeopt(int space_needed) V8_OVERRIDE; | 
| void DoLoadKeyedExternalArray(LLoadKeyed* instr); | 
| void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); | 
| void DoLoadKeyedFixedArray(LLoadKeyed* instr); | 
| @@ -415,24 +383,14 @@ class LCodeGen V8_FINAL  BASE_EMBEDDED { | 
| void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); | 
| void DoStoreKeyedFixedArray(LStoreKeyed* instr); | 
|  | 
| -  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> deopt_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 | 
|  |