| Index: src/arm/stub-cache-arm.cc
|
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
|
| index 9ad7d2a0363b3df768abab0162c2a1143488f2ae..ab6e1d7ef5193ff2af66cb5ffbc16269ef8735cc 100644
|
| --- a/src/arm/stub-cache-arm.cc
|
| +++ b/src/arm/stub-cache-arm.cc
|
| @@ -1322,40 +1322,20 @@ void LoadStubCompiler::GenerateLoadCallback(
|
| __ Push(scratch4(), reg);
|
| __ mov(scratch2(), sp); // scratch2 = PropertyAccessorInfo::args_
|
| __ push(name());
|
| - __ mov(r0, sp); // r0 = Handle<Name>
|
|
|
| - const int kApiStackSpace = 1;
|
| - FrameScope frame_scope(masm(), StackFrame::MANUAL);
|
| - __ EnterExitFrame(false, kApiStackSpace);
|
| -
|
| - // Create PropertyAccessorInfo instance on the stack above the exit frame with
|
| - // scratch2 (internal::Object** args_) as the data.
|
| - __ str(scratch2(), MemOperand(sp, 1 * kPointerSize));
|
| - __ add(r1, sp, Operand(1 * kPointerSize)); // r1 = AccessorInfo&
|
| + // Abi for CallApiGetter
|
| + Register getter_address_reg = r3;
|
| + Register thunk_last_arg = r2;
|
|
|
| - const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
|
| Address getter_address = v8::ToCData<Address>(callback->getter());
|
| -
|
| ApiFunction fun(getter_address);
|
| ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
|
| ExternalReference ref = ExternalReference(&fun, type, isolate());
|
| - Register getter_address_reg = r3;
|
| - Register thunk_last_arg = r2;
|
| __ mov(getter_address_reg, Operand(ref));
|
| __ mov(thunk_last_arg, Operand(reinterpret_cast<int32_t>(getter_address)));
|
|
|
| - Address thunk_address = FUNCTION_ADDR(&InvokeAccessorGetterCallback);
|
| - ExternalReference::Type thunk_type =
|
| - ExternalReference::PROFILING_GETTER_CALL;
|
| - ApiFunction thunk_fun(thunk_address);
|
| - ExternalReference thunk_ref = ExternalReference(&thunk_fun, thunk_type,
|
| - isolate());
|
| - __ CallApiFunctionAndReturn(getter_address_reg,
|
| - thunk_ref,
|
| - thunk_last_arg,
|
| - kStackUnwindSpace,
|
| - MemOperand(fp, 6 * kPointerSize),
|
| - NULL);
|
| + CallApiGetterStub stub;
|
| + __ TailCallStub(&stub);
|
| }
|
|
|
|
|
|
|