| Index: src/mips/stub-cache-mips.cc | 
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc | 
| index 9458c5e249a85f806dd2e433102b3f5f78720535..df779ff6a6cc0d9cf5a465511692f646b08d11a8 100644 | 
| --- a/src/mips/stub-cache-mips.cc | 
| +++ b/src/mips/stub-cache-mips.cc | 
| @@ -879,49 +879,31 @@ static void GenerateFastApiDirectCall(MacroAssembler* masm, | 
| FrameScope frame_scope(masm, StackFrame::MANUAL); | 
| __ EnterExitFrame(false, kApiStackSpace); | 
|  | 
| -  // NOTE: the O32 abi requires a0 to hold a special pointer when returning a | 
| -  // struct from the function (which is currently the case). This means we pass | 
| -  // the first argument in a1 instead of a0, if returns_handle is true. | 
| -  // CallApiFunctionAndReturn will set up a0. | 
| - | 
| -  Address function_address = v8::ToCData<Address>(api_call_info->callback()); | 
| -  // TODO(dcarney): fix signatures using returns_handle | 
| -  const bool returns_handle = false; | 
| - | 
| -  Register first_arg = returns_handle ? a1 : a0; | 
| -  Register second_arg = returns_handle ? a2 : a1; | 
| - | 
| -  // first_arg = v8::Arguments& | 
| +  // a0 = v8::Arguments& | 
| // Arguments is built at sp + 1 (sp is a reserved spot for ra). | 
| -  __ Addu(first_arg, sp, kPointerSize); | 
| +  __ Addu(a0, sp, kPointerSize); | 
|  | 
| // v8::Arguments::implicit_args_ | 
| -  __ sw(a2, MemOperand(first_arg, 0 * kPointerSize)); | 
| +  __ sw(a2, MemOperand(a0, 0 * kPointerSize)); | 
| // v8::Arguments::values_ | 
| __ Addu(t0, a2, Operand(argc * kPointerSize)); | 
| -  __ sw(t0, MemOperand(first_arg, 1 * kPointerSize)); | 
| +  __ sw(t0, MemOperand(a0, 1 * kPointerSize)); | 
| // v8::Arguments::length_ = argc | 
| __ li(t0, Operand(argc)); | 
| -  __ sw(t0, MemOperand(first_arg, 2 * kPointerSize)); | 
| +  __ sw(t0, MemOperand(a0, 2 * kPointerSize)); | 
| // v8::Arguments::is_construct_call = 0 | 
| -  __ sw(zero_reg, MemOperand(first_arg, 3 * kPointerSize)); | 
| +  __ sw(zero_reg, MemOperand(a0, 3 * kPointerSize)); | 
|  | 
| const int kStackUnwindSpace = argc + kFastApiCallArguments + 1; | 
| +  Address function_address = v8::ToCData<Address>(api_call_info->callback()); | 
| ApiFunction fun(function_address); | 
| -  ExternalReference::Type type = | 
| -      returns_handle ? | 
| -          ExternalReference::DIRECT_API_CALL : | 
| -          ExternalReference::DIRECT_API_CALL_NEW; | 
| +  ExternalReference::Type type = ExternalReference::DIRECT_API_CALL; | 
| ExternalReference ref = | 
| ExternalReference(&fun, | 
| type, | 
| masm->isolate()); | 
| - | 
| Address thunk_address = FUNCTION_ADDR(&InvokeFunctionCallback); | 
| -  ExternalReference::Type thunk_type = | 
| -      returns_handle ? | 
| -          ExternalReference::PROFILING_API_CALL : | 
| -          ExternalReference::PROFILING_API_CALL_NEW; | 
| +  ExternalReference::Type thunk_type = ExternalReference::PROFILING_API_CALL; | 
| ApiFunction thunk_fun(thunk_address); | 
| ExternalReference thunk_ref = ExternalReference(&thunk_fun, thunk_type, | 
| masm->isolate()); | 
| @@ -930,9 +912,8 @@ static void GenerateFastApiDirectCall(MacroAssembler* masm, | 
| __ CallApiFunctionAndReturn(ref, | 
| function_address, | 
| thunk_ref, | 
| -                              second_arg, | 
| +                              a1, | 
| kStackUnwindSpace, | 
| -                              returns_handle, | 
| kFastApiCallArguments + 1); | 
| } | 
|  | 
| @@ -1417,21 +1398,8 @@ void BaseLoadStubCompiler::GenerateLoadCallback( | 
| __ sw(scratch4(), MemOperand(sp, 1 * kPointerSize)); | 
| __ sw(name(), MemOperand(sp, 0 * kPointerSize)); | 
|  | 
| -  Address getter_address = v8::ToCData<Address>(callback->getter()); | 
| -  // TODO(dcarney): fix signatures using returns_handle | 
| -  const bool returns_handle = false; | 
| - | 
| -  Register first_arg = returns_handle ? a1 : a0; | 
| -  Register second_arg = returns_handle ? a2 : a1; | 
| -  Register third_arg = returns_handle ? a3 : a2; | 
| - | 
| __ mov(a2, scratch2());  // Saved in case scratch2 == a1. | 
| -  __ mov(first_arg, sp);  // (first argument - see note below) = Handle<Name> | 
| - | 
| -  // NOTE: the O32 abi requires a0 to hold a special pointer when returning a | 
| -  // struct from the function (which is currently the case). This means we pass | 
| -  // the arguments in a1-a2 instead of a0-a1, if returns_handle is true. | 
| -  // CallApiFunctionAndReturn will set up a0. | 
| +  __ mov(a0, sp);  // (first argument - a0) = Handle<Name> | 
|  | 
| const int kApiStackSpace = 1; | 
| FrameScope frame_scope(masm(), StackFrame::MANUAL); | 
| @@ -1440,30 +1408,26 @@ void BaseLoadStubCompiler::GenerateLoadCallback( | 
| // Create AccessorInfo instance on the stack above the exit frame with | 
| // scratch2 (internal::Object** args_) as the data. | 
| __ sw(a2, MemOperand(sp, kPointerSize)); | 
| -  // (second argument - see note above) = AccessorInfo& | 
| -  __ Addu(second_arg, sp, kPointerSize); | 
| +  // (second argument - a1) = AccessorInfo& | 
| +  __ Addu(a1, sp, kPointerSize); | 
|  | 
| const int kStackUnwindSpace = kFastApiCallArguments + 1; | 
| - | 
| +  Address getter_address = v8::ToCData<Address>(callback->getter()); | 
| ApiFunction fun(getter_address); | 
| -  ExternalReference::Type type = | 
| -      returns_handle ? | 
| -          ExternalReference::DIRECT_GETTER_CALL : | 
| -          ExternalReference::DIRECT_GETTER_CALL_NEW; | 
| +  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL; | 
| ExternalReference ref = ExternalReference(&fun, type, isolate()); | 
|  | 
| Address thunk_address = FUNCTION_ADDR(&InvokeAccessorGetterCallback); | 
| ExternalReference::Type thunk_type = | 
| -      ExternalReference::PROFILING_GETTER_CALL_NEW; | 
| +      ExternalReference::PROFILING_GETTER_CALL; | 
| ApiFunction thunk_fun(thunk_address); | 
| ExternalReference thunk_ref = ExternalReference(&thunk_fun, thunk_type, | 
| isolate()); | 
| __ CallApiFunctionAndReturn(ref, | 
| getter_address, | 
| thunk_ref, | 
| -                              third_arg, | 
| +                              a2, | 
| kStackUnwindSpace, | 
| -                              returns_handle, | 
| 5); | 
| } | 
|  | 
|  |