| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 9e0d59f8ec910e4d7d3ef60b44d7063ba8f75009..89eb8c858eac7f848ca72552595306944ea02769 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -277,6 +277,7 @@ bool LCodeGen::GenerateBody() {
|
| instr->CompileToNative(this);
|
| }
|
| EnsureSpaceForLazyDeopt();
|
| + last_lazy_deopt_pc_ = masm()->pc_offset();
|
| return !is_aborted();
|
| }
|
|
|
| @@ -676,6 +677,7 @@ void LCodeGen::CallCodeGeneric(Handle<Code> code,
|
| LInstruction* instr,
|
| SafepointMode safepoint_mode,
|
| TargetAddressStorageMode storage_mode) {
|
| + EnsureSpaceForLazyDeopt();
|
| ASSERT(instr != NULL);
|
| // Block literal pool emission to ensure nop indicating no inlined smi code
|
| // is in the correct position.
|
| @@ -5610,12 +5612,12 @@ void LCodeGen::EnsureSpaceForLazyDeopt() {
|
| padding_size -= Assembler::kInstrSize;
|
| }
|
| }
|
| - last_lazy_deopt_pc_ = masm()->pc_offset();
|
| }
|
|
|
|
|
| void LCodeGen::DoLazyBailout(LLazyBailout* instr) {
|
| EnsureSpaceForLazyDeopt();
|
| + last_lazy_deopt_pc_ = masm()->pc_offset();
|
| ASSERT(instr->HasEnvironment());
|
| LEnvironment* env = instr->environment();
|
| RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt);
|
| @@ -5673,6 +5675,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
| PredictableCodeSizeScope predictable(masm_, 2 * Assembler::kInstrSize);
|
| CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr);
|
| EnsureSpaceForLazyDeopt();
|
| + last_lazy_deopt_pc_ = masm()->pc_offset();
|
| __ bind(&done);
|
| RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt);
|
| safepoints_.RecordLazyDeoptimizationIndex(env->deoptimization_index());
|
| @@ -5685,6 +5688,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
| __ cmp(sp, Operand(ip));
|
| __ b(lo, deferred_stack_check->entry());
|
| EnsureSpaceForLazyDeopt();
|
| + last_lazy_deopt_pc_ = masm()->pc_offset();
|
| __ bind(instr->done_label());
|
| deferred_stack_check->SetExit(instr->done_label());
|
| RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt);
|
|
|