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 |