| Index: src/mips/lithium-codegen-mips.h
|
| diff --git a/src/mips/lithium-codegen-mips.h b/src/mips/lithium-codegen-mips.h
|
| index f9c013c1f5d2bb4cbf8f7cf1cd2ec60c4e0508d6..fd9ff9b7100c000412c03dcb3fe49892126f53db 100644
|
| --- a/src/mips/lithium-codegen-mips.h
|
| +++ b/src/mips/lithium-codegen-mips.h
|
| @@ -58,6 +58,7 @@ class LCodeGen BASE_EMBEDDED {
|
| status_(UNUSED),
|
| deferred_(8),
|
| osr_pc_offset_(-1),
|
| + last_lazy_deopt_pc_(0),
|
| resolver_(this),
|
| expected_safepoint_kind_(Safepoint::kSimple) {
|
| PopulateDeoptimizationLiteralsWithInlinedFunctions();
|
| @@ -112,8 +113,8 @@ class LCodeGen BASE_EMBEDDED {
|
| void DoDeferredStackCheck(LStackCheck* instr);
|
| void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr);
|
| void DoDeferredStringCharFromCode(LStringCharFromCode* instr);
|
| - void DoDeferredLInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr,
|
| - Label* map_check);
|
| + void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr,
|
| + Label* map_check);
|
|
|
| // Parallel move support.
|
| void DoParallelMove(LParallelMove* move);
|
| @@ -216,10 +217,11 @@ class LCodeGen BASE_EMBEDDED {
|
|
|
| void LoadHeapObject(Register result, Handle<HeapObject> object);
|
|
|
| - void RegisterLazyDeoptimization(LInstruction* instr,
|
| - SafepointMode safepoint_mode);
|
| + void RecordSafepointWithLazyDeopt(LInstruction* instr,
|
| + SafepointMode safepoint_mode);
|
|
|
| - void RegisterEnvironmentForDeoptimization(LEnvironment* environment);
|
| + void RegisterEnvironmentForDeoptimization(LEnvironment* environment,
|
| + Safepoint::DeoptMode mode);
|
| void DeoptimizeIf(Condition cc,
|
| LEnvironment* environment,
|
| Register src1,
|
| @@ -251,19 +253,16 @@ class LCodeGen BASE_EMBEDDED {
|
| void RecordSafepoint(LPointerMap* pointers,
|
| Safepoint::Kind kind,
|
| int arguments,
|
| - int deoptimization_index);
|
| - void RecordSafepoint(LPointerMap* pointers, int deoptimization_index);
|
| - void RecordSafepoint(int deoptimization_index);
|
| + Safepoint::DeoptMode mode);
|
| + void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode);
|
| + void RecordSafepoint(Safepoint::DeoptMode mode);
|
| void RecordSafepointWithRegisters(LPointerMap* pointers,
|
| int arguments,
|
| - int deoptimization_index);
|
| + Safepoint::DeoptMode mode);
|
| void RecordSafepointWithRegistersAndDoubles(LPointerMap* pointers,
|
| int arguments,
|
| - int deoptimization_index);
|
| + Safepoint::DeoptMode mode);
|
| void RecordPosition(int position);
|
| - int LastSafepointEnd() {
|
| - return static_cast<int>(safepoints_.GetPcAfterGap());
|
| - }
|
|
|
| static Condition TokenToCondition(Token::Value op, bool is_unsigned);
|
| void EmitGoto(int block);
|
| @@ -320,6 +319,8 @@ class LCodeGen BASE_EMBEDDED {
|
| Address address;
|
| };
|
|
|
| + void EnsureSpaceForLazyDeopt();
|
| +
|
| LChunk* const chunk_;
|
| MacroAssembler* const masm_;
|
| CompilationInfo* const info_;
|
| @@ -336,6 +337,7 @@ class LCodeGen BASE_EMBEDDED {
|
| TranslationBuffer translations_;
|
| ZoneList<LDeferredCode*> deferred_;
|
| int osr_pc_offset_;
|
| + int last_lazy_deopt_pc_;
|
|
|
| // Builder that keeps track of safepoints in the code. The table
|
| // itself is emitted at the end of the generated code.
|
|
|