| Index: src/mips/builtins-mips.cc
|
| diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc
|
| index 732915f0132a92f315d27ad53ed53861a36a6ef0..e22259d71abbf1693582323b93eec0ae963fa41e 100644
|
| --- a/src/mips/builtins-mips.cc
|
| +++ b/src/mips/builtins-mips.cc
|
| @@ -645,6 +645,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
|
| // Set expected number of arguments to zero (not changing a0).
|
| __ mov(a2, zero_reg);
|
| __ GetBuiltinEntry(a3, Builtins::CALL_NON_FUNCTION_AS_CONSTRUCTOR);
|
| + __ SetCallKind(t1, CALL_AS_METHOD);
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET);
|
| }
|
| @@ -1102,6 +1103,8 @@ void Builtins::Generate_LazyCompile(MacroAssembler* masm) {
|
|
|
| // Preserve the function.
|
| __ push(a1);
|
| + // Push call kind information.
|
| + __ push(t1);
|
|
|
| // Push the function on the stack as the argument to the runtime function.
|
| __ push(a1);
|
| @@ -1109,6 +1112,9 @@ void Builtins::Generate_LazyCompile(MacroAssembler* masm) {
|
| __ CallRuntime(Runtime::kLazyCompile, 1);
|
| // Calculate the entry point.
|
| __ addiu(t9, v0, Code::kHeaderSize - kHeapObjectTag);
|
| +
|
| + // Restore call kind information.
|
| + __ pop(t1);
|
| // Restore saved function.
|
| __ pop(a1);
|
|
|
| @@ -1126,12 +1132,17 @@ void Builtins::Generate_LazyRecompile(MacroAssembler* masm) {
|
|
|
| // Preserve the function.
|
| __ push(a1);
|
| + // Push call kind information.
|
| + __ push(t1);
|
|
|
| // Push the function on the stack as the argument to the runtime function.
|
| __ push(a1);
|
| __ CallRuntime(Runtime::kLazyRecompile, 1);
|
| // Calculate the entry point.
|
| __ Addu(t9, v0, Operand(Code::kHeaderSize - kHeapObjectTag));
|
| +
|
| + // Restore call kind information.
|
| + __ pop(t1);
|
| // Restore saved function.
|
| __ pop(a1);
|
|
|
| @@ -1306,6 +1317,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
| __ Branch(&function, ne, a1, Operand(zero_reg));
|
| __ mov(a2, zero_reg); // expected arguments is 0 for CALL_NON_FUNCTION
|
| __ GetBuiltinEntry(a3, Builtins::CALL_NON_FUNCTION);
|
| + __ SetCallKind(t1, CALL_AS_METHOD);
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET);
|
| __ bind(&function);
|
| @@ -1321,6 +1333,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
| FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
|
| __ sra(a2, a2, kSmiTagSize);
|
| __ lw(a3, FieldMemOperand(a1, JSFunction::kCodeEntryOffset));
|
| + __ SetCallKind(t1, CALL_AS_METHOD);
|
| // Check formal and actual parameter counts.
|
| __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(),
|
| RelocInfo::CODE_TARGET, ne, a2, Operand(a0));
|
| @@ -1500,6 +1513,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
| // -- a1: function (passed through to callee)
|
| // -- a2: expected arguments count
|
| // -- a3: callee code entry
|
| + // -- t1: call kind information
|
| // -----------------------------------
|
|
|
| Label invoke, dont_adapt_arguments;
|
|
|