Index: src/ic/mips64/handler-compiler-mips64.cc |
diff --git a/src/ic/mips64/handler-compiler-mips64.cc b/src/ic/mips64/handler-compiler-mips64.cc |
index d42892bb0f542d9621228e80fd62c5d2fad935be..e612f63b3c1a113a2d8b6fd4a930e2e358242179 100644 |
--- a/src/ic/mips64/handler-compiler-mips64.cc |
+++ b/src/ic/mips64/handler-compiler-mips64.cc |
@@ -223,20 +223,17 @@ static void CompileCallLoadPropertyWithInterceptor( |
// Generate call to api function. |
-void PropertyHandlerCompiler::GenerateFastApiCall( |
+void PropertyHandlerCompiler::GenerateApiAccessorCall( |
MacroAssembler* masm, const CallOptimization& optimization, |
Handle<Map> receiver_map, Register receiver, Register scratch_in, |
- bool is_store, int argc, Register* values) { |
+ bool is_store, Register store_parameter) { |
DCHECK(!receiver.is(scratch_in)); |
- // Preparing to push, adjust sp. |
- __ Dsubu(sp, sp, Operand((argc + 1) * kPointerSize)); |
- __ sd(receiver, MemOperand(sp, argc * kPointerSize)); // Push receiver. |
+ __ push(receiver); |
// Write the arguments to stack frame. |
- for (int i = 0; i < argc; i++) { |
- Register arg = values[argc - 1 - i]; |
- DCHECK(!receiver.is(arg)); |
- DCHECK(!scratch_in.is(arg)); |
- __ sd(arg, MemOperand(sp, (argc - 1 - i) * kPointerSize)); // Push arg. |
+ if (is_store) { |
+ DCHECK(!receiver.is(store_parameter)); |
+ DCHECK(!scratch_in.is(store_parameter)); |
+ __ push(store_parameter); |
} |
DCHECK(optimization.is_simple_api_call()); |
@@ -289,7 +286,7 @@ void PropertyHandlerCompiler::GenerateFastApiCall( |
__ li(api_function_address, Operand(ref)); |
// Jump to stub. |
- CallApiFunctionStub stub(isolate, is_store, call_data_undefined, argc); |
+ CallApiAccessorStub stub(isolate, is_store, call_data_undefined); |
__ TailCallStub(&stub); |
} |