Index: src/full-codegen/ia32/full-codegen-ia32.cc |
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc |
index d704053f7ba6f4ae4df97dbb6986a82b677538c0..d504277aa1795a2c96a9dc205d8b715aa22701b6 100644 |
--- a/src/full-codegen/ia32/full-codegen-ia32.cc |
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc |
@@ -2385,11 +2385,13 @@ void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) { |
PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS); |
SetCallPosition(expr); |
+ Handle<Code> code = CodeFactory::CallIC(isolate(), ConvertReceiverMode::kAny, |
+ expr->tail_call_mode()) |
+ .code(); |
+ __ Move(edx, Immediate(SmiFromSlot(expr->CallFeedbackICSlot()))); |
__ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize)); |
- __ Set(eax, arg_count); |
- __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kAny, |
- expr->tail_call_mode()), |
- RelocInfo::CODE_TARGET); |
+ __ Move(eax, Immediate(arg_count)); |
+ __ call(code, RelocInfo::CODE_TARGET); |
OperandStackDepthDecrement(arg_count + 1); |
RecordJSReturnSite(expr); |
RestoreContext(); |