Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index fa68870fd77df768d928485baeb4a5197aa2d9f9..1cab8f3f68f4226a88e29d1d3b58100bc29bbf63 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1117,7 +1117,8 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
// No need for a write barrier, we are storing a Smi in the feedback vector. |
__ LoadHeapObject(ebx, FeedbackVector()); |
- __ mov(FieldOperand(ebx, FixedArray::OffsetOfElementAt(slot.ToInt())), |
+ int vector_index = FeedbackVector()->GetIndex(slot); |
+ __ mov(FieldOperand(ebx, FixedArray::OffsetOfElementAt(vector_index)), |
Immediate(TypeFeedbackVector::MegamorphicSentinel(isolate()))); |
__ mov(ebx, Immediate(Smi::FromInt(1))); // Smi indicates slow check |
@@ -2802,9 +2803,7 @@ void FullCodeGenerator::EmitCall(Call* expr, CallICState::CallType call_type) { |
isolate(), arg_count, call_type); |
__ Move(edx, Immediate(SmiFromSlot(expr->CallFeedbackSlot()))); |
__ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize)); |
- // Don't assign a type feedback id to the IC, since type feedback is provided |
- // by the vector above. |
- CallIC(ic); |
+ CallIC(ic, TypeFeedbackId(expr->CallFeedbackSlot().ToInt())); |
RecordJSReturnSite(expr); |