| Index: src/ia32/lithium-codegen-ia32.h
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.h (revision 9984)
|
| +++ src/ia32/lithium-codegen-ia32.h (working copy)
|
| @@ -61,7 +61,7 @@
|
| dynamic_frame_alignment_(false),
|
| deferred_(8),
|
| osr_pc_offset_(-1),
|
| - deoptimization_reloc_size(),
|
| + last_lazy_deopt_pc_(0),
|
| resolver_(this),
|
| expected_safepoint_kind_(Safepoint::kSimple) {
|
| PopulateDeoptimizationLiteralsWithInlinedFunctions();
|
| @@ -101,8 +101,8 @@
|
| 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);
|
| @@ -144,7 +144,6 @@
|
| HGraph* graph() const { return chunk_->graph(); }
|
|
|
| int GetNextEmittedBlock(int block);
|
| - LInstruction* GetNextInstruction();
|
|
|
| void EmitClassOfTest(Label* if_true,
|
| Label* if_false,
|
| @@ -210,10 +209,11 @@
|
|
|
| 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);
|
|
|
| void AddToTranslation(Translation* translation,
|
| @@ -248,16 +248,13 @@
|
| 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 RecordPosition(int position);
|
| - int LastSafepointEnd() {
|
| - return static_cast<int>(safepoints_.GetPcAfterGap());
|
| - }
|
|
|
| static Condition TokenToCondition(Token::Value op, bool is_unsigned);
|
| void EmitGoto(int block);
|
| @@ -291,6 +288,7 @@
|
| Register object,
|
| Handle<Map> type,
|
| Handle<String> name);
|
| + void EnsureSpaceForLazyDeopt();
|
|
|
| LChunk* const chunk_;
|
| MacroAssembler* const masm_;
|
| @@ -308,14 +306,8 @@
|
| TranslationBuffer translations_;
|
| ZoneList<LDeferredCode*> deferred_;
|
| int osr_pc_offset_;
|
| + int last_lazy_deopt_pc_;
|
|
|
| - struct DeoptimizationRelocSize {
|
| - int min_size;
|
| - int last_pc_offset;
|
| - };
|
| -
|
| - DeoptimizationRelocSize deoptimization_reloc_size;
|
| -
|
| // Builder that keeps track of safepoints in the code. The table
|
| // itself is emitted at the end of the generated code.
|
| SafepointTableBuilder safepoints_;
|
|
|