| Index: src/x64/stub-cache-x64.cc | 
| diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc | 
| index 696e5db062fe459eebb480cafd874d0619f47ba1..55e4a9b129556c070cfc8a3e39b1d9f6bc777864 100644 | 
| --- a/src/x64/stub-cache-x64.cc | 
| +++ b/src/x64/stub-cache-x64.cc | 
| @@ -493,16 +493,10 @@ static void GenerateFastApiCall(MacroAssembler* masm, | 
|  | 
| // Function address is a foreign pointer outside V8's heap. | 
| Address function_address = v8::ToCData<Address>(api_call_info->callback()); | 
| -  // TODO(dcarney): fix signatures using returns_handle | 
| -  const bool returns_handle = false; | 
|  | 
| -#if defined(__MINGW64__) | 
| +#if defined(__MINGW64__) || defined(_WIN64) | 
| Register arguments_arg = rcx; | 
| Register callback_arg = rdx; | 
| -#elif defined(_WIN64) | 
| -  // Win64 uses first register--rcx--for returned value. | 
| -  Register arguments_arg = returns_handle ? rdx : rcx; | 
| -  Register callback_arg = returns_handle ? r8 : rdx; | 
| #else | 
| Register arguments_arg = rdi; | 
| Register callback_arg = rsi; | 
| @@ -512,7 +506,7 @@ static void GenerateFastApiCall(MacroAssembler* masm, | 
| // it's not controlled by GC. | 
| const int kApiStackSpace = 4; | 
|  | 
| -  __ PrepareCallApiFunction(kApiStackSpace, returns_handle); | 
| +  __ PrepareCallApiFunction(kApiStackSpace); | 
|  | 
| __ movq(StackSpaceOperand(0), rbx);  // v8::Arguments::implicit_args_. | 
| __ addq(rbx, Immediate(argc * kPointerSize)); | 
| @@ -530,7 +524,6 @@ static void GenerateFastApiCall(MacroAssembler* masm, | 
| thunk_address, | 
| callback_arg, | 
| api_call_argc + 1, | 
| -                              returns_handle, | 
| kFastApiCallArguments + 1); | 
| } | 
|  | 
| @@ -1307,18 +1300,11 @@ void BaseLoadStubCompiler::GenerateLoadCallback( | 
| // passed as the const ExecutableAccessorInfo& to the C++ callback. | 
|  | 
| Address getter_address = v8::ToCData<Address>(callback->getter()); | 
| -  // TODO(dcarney): fix signatures using returns_handle | 
| -  const bool returns_handle = false; | 
|  | 
| -#if defined(__MINGW64__) | 
| +#if defined(__MINGW64__) || defined(_WIN64) | 
| Register getter_arg = r8; | 
| Register accessor_info_arg = rdx; | 
| Register name_arg = rcx; | 
| -#elif defined(_WIN64) | 
| -  // Win64 uses first register--rcx--for returned value. | 
| -  Register getter_arg = returns_handle ? r9 : r8; | 
| -  Register accessor_info_arg = returns_handle ? r8 : rdx; | 
| -  Register name_arg = returns_handle ? rdx : rcx; | 
| #else | 
| Register getter_arg = rdx; | 
| Register accessor_info_arg = rsi; | 
| @@ -1335,7 +1321,7 @@ void BaseLoadStubCompiler::GenerateLoadCallback( | 
| // Allocate v8::AccessorInfo in non-GCed stack space. | 
| const int kArgStackSpace = 1; | 
|  | 
| -  __ PrepareCallApiFunction(kArgStackSpace, returns_handle); | 
| +  __ PrepareCallApiFunction(kArgStackSpace); | 
| STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 6); | 
| __ lea(rax, Operand(name_arg, 6 * kPointerSize)); | 
|  | 
| @@ -1352,7 +1338,6 @@ void BaseLoadStubCompiler::GenerateLoadCallback( | 
| thunk_address, | 
| getter_arg, | 
| kStackSpace, | 
| -                              returns_handle, | 
| 5); | 
| } | 
|  | 
|  |