Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index d8bf19fc111b3c47126ad45dc97812b737feb842..a16d1a9556d619f304756870679aa1fd99460719 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -139,6 +139,7 @@ void FullCodeGenerator::Generate() { |
info->set_prologue_offset(masm_->pc_offset()); |
__ Prologue(info->IsCodePreAgingActive()); |
+ __ Push(FeedbackVector()); |
info->AddNoFrameRange(0, masm_->pc_offset()); |
{ Comment cmnt(masm_, "[ Allocate locals"); |
@@ -2109,7 +2110,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
__ movp(rcx, rsi); |
__ RecordWriteField(rax, JSGeneratorObject::kContextOffset, rcx, rdx, |
kDontSaveFPRegs); |
- __ leap(rbx, Operand(rbp, StandardFrameConstants::kExpressionsOffset)); |
+ __ leap(rbx, Operand(rbp, JavaScriptFrameConstants::kLocal0Offset)); |
__ cmpp(rsp, rbx); |
__ j(equal, &post_runtime); |
__ Push(rax); // generator object |
@@ -2290,6 +2291,11 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator, |
__ Push(rsi); // Callee's context. |
__ Push(rdi); // Callee's JS Function. |
+ // Callee's type feedback vector. |
+ __ movp(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); |
+ __ movp(rdx, FieldOperand(rdx, SharedFunctionInfo::kFeedbackVectorOffset)); |
+ __ Push(rdx); |
+ |
// Load the operand stack size. |
__ movp(rdx, FieldOperand(rbx, JSGeneratorObject::kOperandStackOffset)); |
__ movp(rdx, FieldOperand(rdx, FixedArray::kLengthOffset)); |