| Index: src/mips/macro-assembler-mips.cc | 
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc | 
| index 32dce660d8ccdc1f2337f14f87cc04acd2ef5b7f..36c4f45730ceb0ad547dc10b4c23b94ce5e00d18 100644 | 
| --- a/src/mips/macro-assembler-mips.cc | 
| +++ b/src/mips/macro-assembler-mips.cc | 
| @@ -3610,7 +3610,7 @@ void MacroAssembler::InvokeFunction(Register function, | 
| } | 
|  | 
|  | 
| -void MacroAssembler::InvokeFunction(JSFunction* function, | 
| +void MacroAssembler::InvokeFunction(Handle<JSFunction> function, | 
| const ParameterCount& actual, | 
| InvokeFlag flag, | 
| CallKind call_kind) { | 
| @@ -3618,7 +3618,7 @@ void MacroAssembler::InvokeFunction(JSFunction* function, | 
| ASSERT(flag == JUMP_FUNCTION || has_frame()); | 
|  | 
| // Get the function and setup the context. | 
| -  li(a1, Operand(Handle<JSFunction>(function))); | 
| +  li(a1, Operand(function)); | 
| lw(cp, FieldMemOperand(a1, JSFunction::kContextOffset)); | 
|  | 
| ParameterCount expected(function->shared()->formal_parameter_count()); | 
| @@ -3739,45 +3739,19 @@ void MacroAssembler::CallStub(CodeStub* stub, Condition cond, | 
| } | 
|  | 
|  | 
| -MaybeObject* MacroAssembler::TryCallStub(CodeStub* stub, Condition cond, | 
| -                                         Register r1, const Operand& r2) { | 
| -  ASSERT(AllowThisStubCall(stub));  // Stub calls are not allowed in some stubs. | 
| -  Object* result; | 
| -  { MaybeObject* maybe_result = stub->TryGetCode(); | 
| -    if (!maybe_result->ToObject(&result)) return maybe_result; | 
| -  } | 
| -  Call(Handle<Code>(Code::cast(result)), RelocInfo::CODE_TARGET, | 
| -      kNoASTId, cond, r1, r2); | 
| -  return result; | 
| -} | 
| - | 
| - | 
| void MacroAssembler::TailCallStub(CodeStub* stub) { | 
| ASSERT(allow_stub_calls_ || stub->CompilingCallsToThisStubIsGCSafe()); | 
| Jump(stub->GetCode(), RelocInfo::CODE_TARGET); | 
| } | 
|  | 
|  | 
| -MaybeObject* MacroAssembler::TryTailCallStub(CodeStub* stub, | 
| -                                             Condition cond, | 
| -                                             Register r1, | 
| -                                             const Operand& r2) { | 
| -  Object* result; | 
| -  { MaybeObject* maybe_result = stub->TryGetCode(); | 
| -    if (!maybe_result->ToObject(&result)) return maybe_result; | 
| -  } | 
| -  Jump(Handle<Code>(Code::cast(result)), RelocInfo::CODE_TARGET, cond, r1, r2); | 
| -  return result; | 
| -} | 
| - | 
| - | 
| static int AddressOffset(ExternalReference ref0, ExternalReference ref1) { | 
| return ref0.address() - ref1.address(); | 
| } | 
|  | 
|  | 
| -MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( | 
| -    ExternalReference function, int stack_space) { | 
| +void MacroAssembler::CallApiFunctionAndReturn(ExternalReference function, | 
| +                                              int stack_space) { | 
| ExternalReference next_address = | 
| ExternalReference::handle_scope_next_address(); | 
| const int kNextOffset = 0; | 
| @@ -3848,11 +3822,10 @@ MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( | 
| Ret(); | 
|  | 
| bind(&promote_scheduled_exception); | 
| -  MaybeObject* result = TryTailCallExternalReference( | 
| -      ExternalReference(Runtime::kPromoteScheduledException, isolate()), 0, 1); | 
| -  if (result->IsFailure()) { | 
| -    return result; | 
| -  } | 
| +  TailCallExternalReference( | 
| +      ExternalReference(Runtime::kPromoteScheduledException, isolate()), | 
| +      0, | 
| +      1); | 
|  | 
| // HandleScope limit has changed. Delete allocated extensions. | 
| bind(&delete_allocated_handles); | 
| @@ -3865,8 +3838,6 @@ MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( | 
| 1); | 
| mov(v0, s0); | 
| jmp(&leave_exit_frame); | 
| - | 
| -  return result; | 
| } | 
|  | 
|  | 
| @@ -4089,17 +4060,6 @@ void MacroAssembler::TailCallExternalReference(const ExternalReference& ext, | 
| } | 
|  | 
|  | 
| -MaybeObject* MacroAssembler::TryTailCallExternalReference( | 
| -    const ExternalReference& ext, int num_arguments, int result_size) { | 
| -  // TODO(1236192): Most runtime routines don't need the number of | 
| -  // arguments passed in because it is constant. At some point we | 
| -  // should remove this need and make the runtime routine entry code | 
| -  // smarter. | 
| -  li(a0, num_arguments); | 
| -  return TryJumpToExternalReference(ext); | 
| -} | 
| - | 
| - | 
| void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid, | 
| int num_arguments, | 
| int result_size) { | 
| @@ -4116,14 +4076,6 @@ void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) { | 
| } | 
|  | 
|  | 
| -MaybeObject* MacroAssembler::TryJumpToExternalReference( | 
| -    const ExternalReference& builtin) { | 
| -  li(a1, Operand(builtin)); | 
| -  CEntryStub stub(1); | 
| -  return TryTailCallStub(&stub); | 
| -} | 
| - | 
| - | 
| void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id, | 
| InvokeFlag flag, | 
| const CallWrapper& call_wrapper) { | 
|  |