| Index: src/ia32/macro-assembler-ia32.cc
|
| diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
|
| index 6c51d6859c291f4d392f0695f05b0f18ac0f1bcc..84911ecec5d83896d380218094b821e40d7734ad 100644
|
| --- a/src/ia32/macro-assembler-ia32.cc
|
| +++ b/src/ia32/macro-assembler-ia32.cc
|
| @@ -1216,29 +1216,25 @@ MaybeObject* MacroAssembler::TryTailCallRuntime(Runtime::FunctionId fid,
|
| }
|
|
|
|
|
| -// If true, a Handle<T> returned by value from a function with cdecl calling
|
| -// convention will be returned directly as a value of location_ field in a
|
| -// register eax.
|
| -// If false, it is returned as a pointer to a preallocated by caller memory
|
| -// region. Pointer to this region should be passed to a function as an
|
| -// implicit first argument.
|
| -#if defined(USING_BSD_ABI) || defined(__MINGW32__)
|
| -static const bool kReturnHandlesDirectly = true;
|
| +// If true, a Handle<T> passed by value is passed and returned by
|
| +// using the location_ field directly. If false, it is passed and
|
| +// returned as a pointer to a handle.
|
| +#ifdef USING_BSD_ABI
|
| +static const bool kPassHandlesDirectly = true;
|
| #else
|
| -static const bool kReturnHandlesDirectly = false;
|
| +static const bool kPassHandlesDirectly = false;
|
| #endif
|
|
|
|
|
| Operand ApiParameterOperand(int index) {
|
| - return Operand(
|
| - esp, (index + (kReturnHandlesDirectly ? 0 : 1)) * kPointerSize);
|
| + return Operand(esp, (index + (kPassHandlesDirectly ? 0 : 1)) * kPointerSize);
|
| }
|
|
|
|
|
| void MacroAssembler::PrepareCallApiFunction(int argc, Register scratch) {
|
| - if (kReturnHandlesDirectly) {
|
| + if (kPassHandlesDirectly) {
|
| EnterApiExitFrame(argc);
|
| - // When handles are returned directly we don't have to allocate extra
|
| + // When handles as passed directly we don't have to allocate extra
|
| // space for and pass an out parameter.
|
| } else {
|
| // We allocate two additional slots: return value and pointer to it.
|
| @@ -1283,7 +1279,7 @@ MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn(ApiFunction* function,
|
| // Call the api function!
|
| call(function->address(), RelocInfo::RUNTIME_ENTRY);
|
|
|
| - if (!kReturnHandlesDirectly) {
|
| + if (!kPassHandlesDirectly) {
|
| // The returned value is a pointer to the handle holding the result.
|
| // Dereference this to get to the location.
|
| mov(eax, Operand(eax, 0));
|
|
|