Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index e00e5ab538a220a2244347d3c5fa3ba0f53eaccc..942b5284a377a811c367ce76618e3765bbc1197e 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -474,7 +474,6 @@ Deoptimizer::Deoptimizer(Isolate* isolate, JSFunction* function, |
bailout_type_(type), |
from_(from), |
fp_to_sp_delta_(fp_to_sp_delta), |
- has_alignment_padding_(0), |
deoptimizing_throw_(false), |
catch_handler_data_(-1), |
catch_handler_pc_offset_(-1), |
@@ -764,9 +763,7 @@ void Deoptimizer::DoComputeOutputFrames() { |
output_count_ = static_cast<int>(count); |
Register fp_reg = JavaScriptFrame::fp_register(); |
- stack_fp_ = reinterpret_cast<Address>( |
- input_->GetRegister(fp_reg.code()) + |
- has_alignment_padding_ * kPointerSize); |
+ stack_fp_ = reinterpret_cast<Address>(input_->GetRegister(fp_reg.code())); |
// Translate each output frame. |
for (size_t i = 0; i < count; ++i) { |
@@ -810,17 +807,13 @@ void Deoptimizer::DoComputeOutputFrames() { |
PrintF(trace_scope_->file(), "[deoptimizing (%s): end ", |
MessageFor(bailout_type_)); |
PrintFunctionName(); |
- PrintF(trace_scope_->file(), |
- " @%d => node=%d, pc=0x%08" V8PRIxPTR ", state=%s, alignment=%s," |
- " took %0.3f ms]\n", |
- bailout_id_, |
- node_id.ToInt(), |
- output_[index]->GetPc(), |
- FullCodeGenerator::State2String( |
- static_cast<FullCodeGenerator::State>( |
- output_[index]->GetState()->value())), |
- has_alignment_padding_ ? "with padding" : "no padding", |
- ms); |
+ PrintF( |
+ trace_scope_->file(), |
+ " @%d => node=%d, pc=0x%08" V8PRIxPTR ", state=%s, took %0.3f ms]\n", |
+ bailout_id_, node_id.ToInt(), output_[index]->GetPc(), |
+ FullCodeGenerator::State2String(static_cast<FullCodeGenerator::State>( |
+ output_[index]->GetState()->value())), |
+ ms); |
} |
} |
@@ -882,17 +875,13 @@ void Deoptimizer::DoComputeJSFrame(int frame_index, bool goto_catch_handler) { |
Register fp_reg = JavaScriptFrame::fp_register(); |
intptr_t top_address; |
if (is_bottommost) { |
- // Determine whether the input frame contains alignment padding. |
- has_alignment_padding_ = |
- (!compiled_code_->is_turbofanned() && HasAlignmentPadding(shared)) ? 1 |
- : 0; |
// 2 = context and function in the frame. |
// If the optimized frame had alignment padding, adjust the frame pointer |
// to point to the new position of the old frame pointer after padding |
// is removed. Subtract 2 * kPointerSize for the context and function slots. |
top_address = input_->GetRegister(fp_reg.code()) - |
- StandardFrameConstants::kFixedFrameSizeFromFp - |
- height_in_bytes + has_alignment_padding_ * kPointerSize; |
+ StandardFrameConstants::kFixedFrameSizeFromFp - |
+ height_in_bytes; |
} else { |
top_address = output_[frame_index - 1]->GetTop() - output_frame_size; |
} |
@@ -940,13 +929,10 @@ void Deoptimizer::DoComputeJSFrame(int frame_index, bool goto_catch_handler) { |
} |
output_frame->SetCallerFp(output_offset, value); |
intptr_t fp_value = top_address + output_offset; |
- DCHECK(!is_bottommost || (input_->GetRegister(fp_reg.code()) + |
- has_alignment_padding_ * kPointerSize) == fp_value); |
+ DCHECK(!is_bottommost || input_->GetRegister(fp_reg.code()) == fp_value); |
output_frame->SetFp(fp_value); |
if (is_topmost) output_frame->SetRegister(fp_reg.code(), fp_value); |
DebugPrintOutputSlot(value, frame_index, output_offset, "caller's fp\n"); |
- DCHECK(!is_bottommost || !has_alignment_padding_ || |
- (fp_value & kPointerSize) != 0); |
if (FLAG_enable_embedded_constant_pool) { |
// For the bottommost output frame the constant pool pointer can be gotten |
@@ -1185,14 +1171,10 @@ void Deoptimizer::DoComputeInterpretedFrame(int frame_index, |
} |
output_frame->SetCallerFp(output_offset, value); |
intptr_t fp_value = top_address + output_offset; |
- DCHECK(!is_bottommost || |
- (input_->GetRegister(fp_reg.code()) + |
- has_alignment_padding_ * kPointerSize) == fp_value); |
+ DCHECK(!is_bottommost || input_->GetRegister(fp_reg.code()) == fp_value); |
output_frame->SetFp(fp_value); |
if (is_topmost) output_frame->SetRegister(fp_reg.code(), fp_value); |
DebugPrintOutputSlot(value, frame_index, output_offset, "caller's fp\n"); |
- DCHECK(!is_bottommost || !has_alignment_padding_ || |
- (fp_value & kPointerSize) != 0); |
if (FLAG_enable_embedded_constant_pool) { |
// For the bottommost output frame the constant pool pointer can be gotten |