| Index: src/deoptimizer.cc
|
| diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc
|
| index 3c2136fd7484e9cbaeedcc89e051290167421dff..56f6c7f0d03ba309024eabd62bc051b4b9a3a0e3 100644
|
| --- a/src/deoptimizer.cc
|
| +++ b/src/deoptimizer.cc
|
| @@ -841,8 +841,9 @@
|
| " @%d => node=%d, pc=0x%08" V8PRIxPTR ", caller sp=0x%08" V8PRIxPTR
|
| ", state=%s, took %0.3f ms]\n",
|
| bailout_id_, node_id.ToInt(), output_[index]->GetPc(),
|
| - caller_frame_top_, BailoutStateToString(static_cast<BailoutState>(
|
| - output_[index]->GetState()->value())),
|
| + caller_frame_top_, FullCodeGenerator::State2String(
|
| + static_cast<FullCodeGenerator::State>(
|
| + output_[index]->GetState()->value())),
|
| ms);
|
| }
|
| }
|
| @@ -1054,11 +1055,10 @@
|
|
|
| // If we are going to the catch handler, then the exception lives in
|
| // the accumulator.
|
| - BailoutState state =
|
| - goto_catch_handler
|
| - ? BailoutState::TOS_REGISTER
|
| - : FullCodeGenerator::BailoutStateField::decode(pc_and_state);
|
| - output_frame->SetState(Smi::FromInt(static_cast<int>(state)));
|
| + FullCodeGenerator::State state =
|
| + goto_catch_handler ? FullCodeGenerator::TOS_REG
|
| + : FullCodeGenerator::StateField::decode(pc_and_state);
|
| + output_frame->SetState(Smi::FromInt(state));
|
|
|
| // Set the continuation for the topmost frame.
|
| if (is_topmost) {
|
| @@ -1274,9 +1274,7 @@
|
| Code* dispatch_builtin =
|
| builtins->builtin(Builtins::kInterpreterEnterBytecodeDispatch);
|
| output_frame->SetPc(reinterpret_cast<intptr_t>(dispatch_builtin->entry()));
|
| - // Restore accumulator (TOS) register.
|
| - output_frame->SetState(
|
| - Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
|
| + output_frame->SetState(0);
|
|
|
| // Update constant pool.
|
| if (FLAG_enable_embedded_constant_pool) {
|
| @@ -1292,11 +1290,14 @@
|
|
|
| // Set the continuation for the topmost frame.
|
| if (is_topmost) {
|
| - Code* continuation = builtins->builtin(Builtins::kNotifyDeoptimized);
|
| + Code* continuation =
|
| + builtins->builtin(Builtins::kInterpreterNotifyDeoptimized);
|
| if (bailout_type_ == LAZY) {
|
| - continuation = builtins->builtin(Builtins::kNotifyLazyDeoptimized);
|
| + continuation =
|
| + builtins->builtin(Builtins::kInterpreterNotifyLazyDeoptimized);
|
| } else if (bailout_type_ == SOFT) {
|
| - continuation = builtins->builtin(Builtins::kNotifySoftDeoptimized);
|
| + continuation =
|
| + builtins->builtin(Builtins::kInterpreterNotifySoftDeoptimized);
|
| } else {
|
| CHECK_EQ(bailout_type_, EAGER);
|
| }
|
| @@ -1510,7 +1511,7 @@
|
| // value of result register is preserved during continuation execution.
|
| // We do this here by "pushing" the result of the constructor function to the
|
| // top of the reconstructed stack and then using the
|
| - // BailoutState::TOS_REGISTER machinery.
|
| + // FullCodeGenerator::TOS_REG machinery.
|
| if (is_topmost) {
|
| height_in_bytes += kPointerSize;
|
| }
|
| @@ -1631,8 +1632,7 @@
|
| DebugPrintOutputSlot(value, frame_index, output_offset,
|
| "constructor result\n");
|
|
|
| - output_frame->SetState(
|
| - Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
|
| + output_frame->SetState(Smi::FromInt(FullCodeGenerator::TOS_REG));
|
| }
|
|
|
| CHECK_EQ(0u, output_offset);
|
| @@ -1686,7 +1686,7 @@
|
| // value of result register is preserved during continuation execution.
|
| // We do this here by "pushing" the result of the accessor function to the
|
| // top of the reconstructed stack and then using the
|
| - // BailoutState::TOS_REGISTER machinery.
|
| + // FullCodeGenerator::TOS_REG machinery.
|
| // We don't need to restore the result in case of a setter call because we
|
| // have to return the stored value but not the result of the setter function.
|
| bool should_preserve_result = is_topmost && !is_setter_stub_frame;
|
| @@ -1805,11 +1805,9 @@
|
| DebugPrintOutputSlot(value, frame_index, output_offset,
|
| "accessor result\n");
|
|
|
| - output_frame->SetState(
|
| - Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
|
| + output_frame->SetState(Smi::FromInt(FullCodeGenerator::TOS_REG));
|
| } else {
|
| - output_frame->SetState(
|
| - Smi::FromInt(static_cast<int>(BailoutState::NO_REGISTERS)));
|
| + output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS));
|
| }
|
|
|
| CHECK_EQ(0u, output_offset);
|
| @@ -2064,8 +2062,7 @@
|
| output_frame->SetConstantPool(constant_pool_value);
|
| output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value);
|
| }
|
| - output_frame->SetState(
|
| - Smi::FromInt(static_cast<int>(BailoutState::NO_REGISTERS)));
|
| + output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS));
|
| Code* notify_failure =
|
| isolate_->builtins()->builtin(Builtins::kNotifyStubFailureSaveDoubles);
|
| output_frame->SetContinuation(
|
|
|