From 0803c4dfbf80bc683278315f3693e46e2845d59d Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Fri, 13 Apr 2012 11:25:13 +0000 Subject: [PATCH] Fix r11306 to use external references on X64. R=jkummerow@chromium.org Review URL: https://chromiumcodereview.appspot.com/10079004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/x64/stub-cache-x64.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc index fed2f26..86b4aff 100644 --- a/src/x64/stub-cache-x64.cc +++ b/src/x64/stub-cache-x64.cc @@ -379,7 +379,8 @@ static void PushInterceptorArguments(MacroAssembler* masm, __ push(receiver); __ push(holder); __ push(FieldOperand(kScratchRegister, InterceptorInfo::kDataOffset)); - __ push(Immediate(reinterpret_cast(masm->isolate()))); + __ movq(kScratchRegister, ExternalReference::isolate_address()); + __ push(kScratchRegister); } @@ -475,8 +476,8 @@ static void GenerateFastApiCall(MacroAssembler* masm, } else { __ Move(Operand(rsp, 3 * kPointerSize), call_data); } - __ movq(Operand(rsp, 4 * kPointerSize), - Immediate(reinterpret_cast(masm->isolate()))); + __ movq(kScratchRegister, ExternalReference::isolate_address()); + __ movq(Operand(rsp, 4 * kPointerSize), kScratchRegister); // Prepare arguments. __ lea(rbx, Operand(rsp, 4 * kPointerSize)); @@ -1009,7 +1010,8 @@ void StubCompiler::GenerateLoadCallback(Handle object, } else { __ Push(Handle(callback->data())); } - __ push(Immediate(reinterpret_cast(isolate()))); // isolate + __ movq(kScratchRegister, ExternalReference::isolate_address()); + __ push(kScratchRegister); // isolate __ push(name_reg); // name // Save a pointer to where we pushed the arguments pointer. // This will be passed as the const AccessorInfo& to the C++ callback. @@ -1184,7 +1186,8 @@ void StubCompiler::GenerateLoadInterceptor(Handle object, __ push(holder_reg); __ Move(holder_reg, callback); __ push(FieldOperand(holder_reg, AccessorInfo::kDataOffset)); - __ push(Immediate(reinterpret_cast(isolate()))); + __ movq(kScratchRegister, ExternalReference::isolate_address()); + __ push(kScratchRegister); __ push(holder_reg); __ push(name_reg); __ push(scratch2); // restore return address -- 2.7.4