From 2c5c08170f5827154aa84b7e1e160004ca7acd22 Mon Sep 17 00:00:00 2001 From: "dcarney@chromium.org" Date: Mon, 27 Jan 2014 11:13:50 +0000 Subject: [PATCH] fix windows after r18847 TBR=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/145353005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/x64/code-stubs-x64.cc | 2 +- src/x64/macro-assembler-x64.cc | 2 +- src/x64/stub-cache-x64.cc | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc index 74a265d922..a64cab86cf 100644 --- a/src/x64/code-stubs-x64.cc +++ b/src/x64/code-stubs-x64.cc @@ -5312,7 +5312,7 @@ void CallApiFunctionStub::Generate(MacroAssembler* masm) { Register callback_arg = rsi; #endif - // It's okay if callback_arg == api_function_address + // It's okay if api_function_address == callback_arg // but not arguments_arg ASSERT(!api_function_address.is(arguments_arg)); diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc index 94b3f40306..c2e6ba0fd2 100644 --- a/src/x64/macro-assembler-x64.cc +++ b/src/x64/macro-assembler-x64.cc @@ -697,7 +697,7 @@ void MacroAssembler::CallApiFunctionAndReturn( ExternalReference scheduled_exception_address = ExternalReference::scheduled_exception_address(isolate()); - ASSERT(rdx.is(function_address)); + ASSERT(rdx.is(function_address) || r8.is(function_address)); // Allocate HandleScope in callee-save registers. Register prev_next_address_reg = r14; Register prev_limit_reg = rbx; diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc index fce9b92c94..a84eb1f63b 100644 --- a/src/x64/stub-cache-x64.cc +++ b/src/x64/stub-cache-x64.cc @@ -1252,7 +1252,12 @@ void LoadStubCompiler::GenerateLoadCallback( Address thunk_address = FUNCTION_ADDR(&InvokeAccessorGetterCallback); - Register api_function_address = rdx; + Register api_function_address = r8; + // It's okay if api_function_address == getter_arg + // but not accessor_info_arg or name_arg + ASSERT(!api_function_address.is(accessor_info_arg) && + !api_function_address.is(name_arg)); + __ Move(api_function_address, getter_address, RelocInfo::EXTERNAL_REFERENCE); // The name handler is counted as an argument.