Index: src/builtins/x64/builtins-x64.cc |
diff --git a/src/builtins/x64/builtins-x64.cc b/src/builtins/x64/builtins-x64.cc |
index ecdac09347d31e8df4c094422ec1ed05fb14f107..fa2f562feed76e3e660d4773b5cab7130bb36d0d 100644 |
--- a/src/builtins/x64/builtins-x64.cc |
+++ b/src/builtins/x64/builtins-x64.cc |
@@ -672,6 +672,15 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ cmpp(rcx, FieldOperand(rax, SharedFunctionInfo::kCodeOffset)); |
__ j(not_equal, &switch_to_different_code_kind); |
+ // Increment invocation count for the function. |
+ __ movp(rcx, FieldOperand(rdi, JSFunction::kLiteralsOffset)); |
+ __ movp(rcx, FieldOperand(rcx, LiteralsArray::kFeedbackVectorOffset)); |
+ __ SmiAddConstant( |
+ FieldOperand(rcx, |
+ TypeFeedbackVector::kInvocationCountIndex * kPointerSize + |
+ TypeFeedbackVector::kHeaderSize), |
+ Smi::FromInt(1)); |
+ |
// Check function data field is actually a BytecodeArray object. |
if (FLAG_debug_code) { |
__ AssertNotSmi(kInterpreterBytecodeArrayRegister); |