| Index: src/mips64/code-stubs-mips64.cc
|
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
|
| index b0ef6c6aeffbe0e6255e50cb642b78b78dda8aa4..585f56781312bb422f05415691a7f027ec24fb49 100644
|
| --- a/src/mips64/code-stubs-mips64.cc
|
| +++ b/src/mips64/code-stubs-mips64.cc
|
| @@ -4887,13 +4887,10 @@ static int AddressOffset(ExternalReference ref0, ExternalReference ref1) {
|
| // from handle and propagates exceptions. Restores context. stack_space
|
| // - space to be unwound on exit (includes the call JS arguments space and
|
| // the additional space allocated for the fast call).
|
| -static void CallApiFunctionAndReturn(MacroAssembler* masm,
|
| - Register function_address,
|
| - ExternalReference thunk_ref,
|
| - int stack_space,
|
| - MemOperand* stack_space_operand,
|
| - MemOperand return_value_operand,
|
| - MemOperand* context_restore_operand) {
|
| +static void CallApiFunctionAndReturn(
|
| + MacroAssembler* masm, Register function_address,
|
| + ExternalReference thunk_ref, int stack_space, int32_t stack_space_offset,
|
| + MemOperand return_value_operand, MemOperand* context_restore_operand) {
|
| Isolate* isolate = masm->isolate();
|
| ExternalReference next_address =
|
| ExternalReference::handle_scope_next_address(isolate);
|
| @@ -4987,13 +4984,14 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm,
|
| if (restore_context) {
|
| __ ld(cp, *context_restore_operand);
|
| }
|
| - if (stack_space_operand != NULL) {
|
| - __ lw(s0, *stack_space_operand);
|
| + if (stack_space_offset != kInvalidStackOffset) {
|
| + DCHECK(kCArgsSlotsSize == 0);
|
| + __ ld(s0, MemOperand(sp, stack_space_offset));
|
| } else {
|
| __ li(s0, Operand(stack_space));
|
| }
|
| __ LeaveExitFrame(false, s0, !restore_context, EMIT_RETURN,
|
| - stack_space_operand != NULL);
|
| + stack_space_offset != kInvalidStackOffset);
|
| __ bind(&promote_scheduled_exception);
|
| {
|
| FrameScope frame(masm, StackFrame::INTERNAL);
|
| @@ -5123,14 +5121,13 @@ static void CallApiFunctionStubHelper(MacroAssembler* masm,
|
| }
|
| MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
|
| int stack_space = 0;
|
| - MemOperand is_construct_call_operand = MemOperand(sp, 4 * kPointerSize);
|
| - MemOperand* stack_space_operand = &is_construct_call_operand;
|
| + int32_t stack_space_offset = 4 * kPointerSize;
|
| if (argc.is_immediate()) {
|
| stack_space = argc.immediate() + FCA::kArgsLength + 1;
|
| - stack_space_operand = NULL;
|
| + stack_space_offset = kInvalidStackOffset;
|
| }
|
| CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
|
| - stack_space_operand, return_value_operand,
|
| + stack_space_offset, return_value_operand,
|
| &context_restore_operand);
|
| }
|
|
|
| @@ -5179,7 +5176,7 @@ void CallApiGetterStub::Generate(MacroAssembler* masm) {
|
| ExternalReference thunk_ref =
|
| ExternalReference::invoke_accessor_getter_callback(isolate());
|
| CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
|
| - kStackUnwindSpace, NULL,
|
| + kStackUnwindSpace, kInvalidStackOffset,
|
| MemOperand(fp, 6 * kPointerSize), NULL);
|
| }
|
|
|
|
|