Index: src/ia32/stub-cache-ia32.cc |
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc |
index d7f68457ee43e4c2a242d6153b0034f5ce3f338b..49b9857a263271d4f59858602459be5e19ffd2c7 100644 |
--- a/src/ia32/stub-cache-ia32.cc |
+++ b/src/ia32/stub-cache-ia32.cc |
@@ -1313,39 +1313,16 @@ void LoadStubCompiler::GenerateLoadCallback( |
__ push(esp); |
__ push(name()); // name |
- __ mov(ebx, esp); // esp points to reference to name (handler). |
__ push(scratch3()); // Restore return address. |
- // array for v8::Arguments::values_, handler for name and pointer |
- // to the values (it considered as smi in GC). |
- const int kStackSpace = PropertyCallbackArguments::kArgsLength + 2; |
- // Allocate space for opional callback address parameter in case |
- // CPU profiler is active. |
- const int kApiArgc = 2 + 1; |
- |
- __ PrepareCallApiFunction(kApiArgc); |
- __ mov(ApiParameterOperand(0), ebx); // name. |
- __ add(ebx, Immediate(kPointerSize)); |
- __ mov(ApiParameterOperand(1), ebx); // arguments pointer. |
- |
- // Emitting a stub call may try to allocate (if the code is not |
- // already generated). Do not allow the assembler to perform a |
- // garbage collection but instead return the allocation failure |
- // object. |
- |
+ // Abi for CallApiGetter |
Register getter_address = edx; |
Address function_address = v8::ToCData<Address>(callback->getter()); |
__ mov(getter_address, Immediate(function_address)); |
- Address thunk_address = FUNCTION_ADDR(&InvokeAccessorGetterCallback); |
- |
- __ CallApiFunctionAndReturn(getter_address, |
- thunk_address, |
- ApiParameterOperand(2), |
- kStackSpace, |
- Operand(ebp, 7 * kPointerSize), |
- NULL); |
+ CallApiGetterStub stub; |
+ __ TailCallStub(&stub); |
} |