Index: src/mips/code-stubs-mips.cc |
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
index 9dd8bdc07f0ee6b33d07c6e4ab83a4fa8f4257e9..10b86c88e677daae5f4fc971431f79ab781ee9f6 100644 |
--- a/src/mips/code-stubs-mips.cc |
+++ b/src/mips/code-stubs-mips.cc |
@@ -2860,6 +2860,17 @@ void CallICStub::Generate(MacroAssembler* masm) { |
__ Addu(t0, a2, Operand(t0)); |
__ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex); |
__ sw(at, FieldMemOperand(t0, FixedArray::kHeaderSize)); |
+ // We have to update statistics for runtime profiling. |
+ const int with_types_offset = |
+ FixedArray::OffsetOfElementAt(TypeFeedbackVector::kWithTypesIndex); |
+ __ lw(t0, FieldMemOperand(a2, with_types_offset)); |
+ __ Subu(t0, t0, Operand(Smi::FromInt(1))); |
+ __ sw(t0, FieldMemOperand(a2, with_types_offset)); |
+ const int generic_offset = |
+ FixedArray::OffsetOfElementAt(TypeFeedbackVector::kGenericCountIndex); |
+ __ lw(t0, FieldMemOperand(a2, generic_offset)); |
+ __ Addu(t0, t0, Operand(Smi::FromInt(1))); |
+ __ sw(t0, FieldMemOperand(a2, generic_offset)); |
__ Branch(&slow_start); |
} |