Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index b787f69c50cb3a79bda22b3cd27de0dcb8c5ff03..68a8d70ecd27b63cb80b0ff62c0570e56b641994 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2659,7 +2659,7 @@ void FullCodeGenerator::EmitKeyedCallWithIC(Call* expr, |
} |
-void FullCodeGenerator::EmitCallWithStub(Call* expr) { |
+void FullCodeGenerator::EmitCallWithStub(Call* expr, CallFunctionFlags flags) { |
// Code common for calls using the call stub. |
ZoneList<Expression*>* args = expr->arguments(); |
int arg_count = args->length(); |
@@ -2671,14 +2671,15 @@ void FullCodeGenerator::EmitCallWithStub(Call* expr) { |
// Record source position for debugger. |
SetSourcePosition(expr->position()); |
+ // Record call targets in unoptimized code. |
+ flags = static_cast<CallFunctionFlags>(flags | RECORD_CALL_TARGET); |
Handle<Object> uninitialized = |
TypeFeedbackCells::UninitializedSentinel(isolate()); |
Handle<Cell> cell = isolate()->factory()->NewCell(uninitialized); |
RecordTypeFeedbackCell(expr->CallFeedbackId(), cell); |
__ mov(r2, Operand(cell)); |
- // Record call targets in unoptimized code. |
- CallFunctionStub stub(arg_count, RECORD_CALL_TARGET); |
+ CallFunctionStub stub(arg_count, flags); |
__ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize)); |
__ CallStub(&stub, expr->CallFeedbackId()); |
RecordJSReturnSite(expr); |
@@ -2805,7 +2806,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
// The receiver is either the global receiver or an object found |
// by LoadContextSlot. |
- EmitCallWithStub(expr); |
+ EmitCallWithStub(expr, NO_CALL_FUNCTION_FLAGS); |
} else if (property != NULL) { |
{ PreservePositionScope scope(masm()->positions_recorder()); |
VisitForStackValue(property->obj()); |
@@ -2825,7 +2826,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
__ LoadRoot(r1, Heap::kUndefinedValueRootIndex); |
__ push(r1); |
// Emit function call. |
- EmitCallWithStub(expr); |
+ EmitCallWithStub(expr, NO_CALL_FUNCTION_FLAGS); |
} |
#ifdef DEBUG |