| Index: src/arm/builtins-arm.cc
|
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
|
| index 931c6bbd1957d8a9e452e470d1dae8fc6f1a080f..ff30ec76333e9432ffca6f8693ed0826f12ef0ff 100644
|
| --- a/src/arm/builtins-arm.cc
|
| +++ b/src/arm/builtins-arm.cc
|
| @@ -636,6 +636,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
|
| // Set expected number of arguments to zero (not changing r0).
|
| __ mov(r2, Operand(0, RelocInfo::NONE));
|
| __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION_AS_CONSTRUCTOR);
|
| + __ SetCallKind(r5, CALL_AS_METHOD);
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET);
|
| }
|
| @@ -1077,12 +1078,17 @@ void Builtins::Generate_LazyCompile(MacroAssembler* masm) {
|
|
|
| // Preserve the function.
|
| __ push(r1);
|
| + // Push call kind information.
|
| + __ push(r5);
|
|
|
| // Push the function on the stack as the argument to the runtime function.
|
| __ push(r1);
|
| __ CallRuntime(Runtime::kLazyCompile, 1);
|
| // Calculate the entry point.
|
| __ add(r2, r0, Operand(Code::kHeaderSize - kHeapObjectTag));
|
| +
|
| + // Restore call kind information.
|
| + __ pop(r5);
|
| // Restore saved function.
|
| __ pop(r1);
|
|
|
| @@ -1100,12 +1106,17 @@ void Builtins::Generate_LazyRecompile(MacroAssembler* masm) {
|
|
|
| // Preserve the function.
|
| __ push(r1);
|
| + // Push call kind information.
|
| + __ push(r5);
|
|
|
| // Push the function on the stack as the argument to the runtime function.
|
| __ push(r1);
|
| __ CallRuntime(Runtime::kLazyRecompile, 1);
|
| // Calculate the entry point.
|
| __ add(r2, r0, Operand(Code::kHeaderSize - kHeapObjectTag));
|
| +
|
| + // Restore call kind information.
|
| + __ pop(r5);
|
| // Restore saved function.
|
| __ pop(r1);
|
|
|
| @@ -1345,6 +1356,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
| // Expected number of arguments is 0 for CALL_NON_FUNCTION.
|
| __ mov(r2, Operand(0, RelocInfo::NONE));
|
| __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION);
|
| + __ SetCallKind(r5, CALL_AS_METHOD);
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET);
|
| __ bind(&function);
|
| @@ -1360,6 +1372,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
| FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
|
| __ mov(r2, Operand(r2, ASR, kSmiTagSize));
|
| __ ldr(r3, FieldMemOperand(r1, JSFunction::kCodeEntryOffset));
|
| + __ SetCallKind(r5, CALL_AS_METHOD);
|
| __ cmp(r2, r0); // Check formal and actual parameter counts.
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET,
|
| @@ -1539,6 +1552,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
| // -- r1 : function (passed through to callee)
|
| // -- r2 : expected number of arguments
|
| // -- r3 : code entry to call
|
| + // -- r5 : call kind information
|
| // -----------------------------------
|
|
|
| Label invoke, dont_adapt_arguments;
|
|
|