Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: src/x64/stub-cache-x64.cc

Issue 10079004: Fix r11306 to use external references on X64. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/x64/stub-cache-x64.cc
diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc
index fed2f2640946103b4a9bc9e15806312ec79ec715..86b4aff68d02b11ef6c7410499aa4e2da6b78611 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<intptr_t>(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<intptr_t>(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<JSObject> object,
} else {
__ Push(Handle<Object>(callback->data()));
}
- __ push(Immediate(reinterpret_cast<intptr_t>(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<JSObject> object,
__ push(holder_reg);
__ Move(holder_reg, callback);
__ push(FieldOperand(holder_reg, AccessorInfo::kDataOffset));
- __ push(Immediate(reinterpret_cast<intptr_t>(isolate())));
+ __ movq(kScratchRegister, ExternalReference::isolate_address());
+ __ push(kScratchRegister);
Erik Corry 2012/04/13 11:34:52 In the case where the isolate address is <4Gbytes
__ push(holder_reg);
__ push(name_reg);
__ push(scratch2); // restore return address
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698