| Index: src/compiler/x64/code-generator-x64.cc
|
| diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc
|
| index 3160734788b68d3888aa347fa31e8f8585815a74..220b6f2ebfaca2c7ea0a55b50d8850fa5fb5cfab 100644
|
| --- a/src/compiler/x64/code-generator-x64.cc
|
| +++ b/src/compiler/x64/code-generator-x64.cc
|
| @@ -1267,8 +1267,13 @@ void CodeGenerator::AssemblePrologue() {
|
| osr_pc_offset_ = __ pc_offset();
|
| // TODO(titzer): cannot address target function == local #-1
|
| __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
| - DCHECK(stack_slots >= frame()->GetOsrStackSlotCount());
|
| - stack_slots -= frame()->GetOsrStackSlotCount();
|
| + int osr_stack_slot_count = frame()->GetOsrStackSlotCount();
|
| + DCHECK(stack_slots >= osr_stack_slot_count);
|
| + stack_slots -= osr_stack_slot_count;
|
| +
|
| + // Full-code javascript functions have a type feedback vector in the frame.
|
| + // Shift any locals down one slot, and adjust the stack pointer.
|
| + __ AdaptUnoptimizedFrameForOsrEntry(osr_stack_slot_count, rbx, rax);
|
| }
|
|
|
| if (stack_slots > 0) {
|
|
|