| Index: src/mips/code-stubs-mips.cc
|
| diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
|
| index a062e99a14618b9b1d31e676c75bde7a99c204c7..161d73d16477eff0e26250454f94085233edeaa6 100644
|
| --- a/src/mips/code-stubs-mips.cc
|
| +++ b/src/mips/code-stubs-mips.cc
|
| @@ -3257,25 +3257,22 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| if (CallAsMethod()) {
|
| if (NeedsChecks()) {
|
| // Do not transform the receiver for strict mode functions and natives.
|
| - __ lw(a2, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
|
| - __ lw(a3, FieldMemOperand(a2, SharedFunctionInfo::kCompilerHintsOffset));
|
| + __ lw(a3, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
|
| + __ lw(a4, FieldMemOperand(a3, SharedFunctionInfo::kCompilerHintsOffset));
|
| int32_t strict_mode_function_mask =
|
| 1 << (SharedFunctionInfo::kStrictModeFunction + kSmiTagSize);
|
| int32_t native_mask = 1 << (SharedFunctionInfo::kNative + kSmiTagSize);
|
| - __ And(at, a3, Operand(strict_mode_function_mask | native_mask));
|
| + __ And(at, a4, Operand(strict_mode_function_mask | native_mask));
|
| __ Branch(&cont, ne, at, Operand(zero_reg));
|
| }
|
|
|
| // Compute the receiver in non-strict mode.
|
| - __ lw(a2, MemOperand(sp, argc_ * kPointerSize));
|
| + __ lw(a3, MemOperand(sp, argc_ * kPointerSize));
|
|
|
| if (NeedsChecks()) {
|
| - // a0: actual number of arguments
|
| - // a1: function
|
| - // a2: first argument
|
| - __ JumpIfSmi(a2, &wrap);
|
| - __ GetObjectType(a2, a3, a3);
|
| - __ Branch(&wrap, lt, a3, Operand(FIRST_SPEC_OBJECT_TYPE));
|
| + __ JumpIfSmi(a3, &wrap);
|
| + __ GetObjectType(a3, a4, a4);
|
| + __ Branch(&wrap, lt, a4, Operand(FIRST_SPEC_OBJECT_TYPE));
|
| } else {
|
| __ jmp(&wrap);
|
| }
|
| @@ -3323,7 +3320,7 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| __ bind(&wrap);
|
| // Wrap the receiver and patch it back onto the stack.
|
| { FrameScope frame_scope(masm, StackFrame::INTERNAL);
|
| - __ Push(a1, a2);
|
| + __ Push(a1, a3);
|
| __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION);
|
| __ pop(a1);
|
| }
|
|
|