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

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

Issue 157543002: A64: Synchronize with r18581. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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 | « src/x64/macro-assembler-x64.cc ('k') | src/zone.cc » ('j') | 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 950ee28e1c4f1609e03378535b1fdcf26cbbc202..0d163017840fbff29e521b3524301123a1b592c9 100644
--- a/src/x64/stub-cache-x64.cc
+++ b/src/x64/stub-cache-x64.cc
@@ -475,7 +475,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
// Prepare arguments.
STATIC_ASSERT(kFastApiCallArguments == 7);
- __ lea(rax, Operand(rsp, 1 * kPointerSize));
+ __ lea(rax, args.GetArgumentOperand(offset - FCA::kHolderIndex));
GenerateFastApiCallBody(masm, optimization, argc, false);
}
@@ -495,8 +495,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
Register* values) {
ASSERT(optimization.is_simple_api_call());
- // Copy return value.
- __ pop(scratch1);
+ __ PopReturnAddressTo(scratch1);
// receiver
__ push(receiver);
@@ -563,9 +562,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
ASSERT(!scratch1.is(rax));
// store receiver address for GenerateFastApiCallBody
__ movq(rax, rsp);
-
- // return address
- __ push(scratch1);
+ __ PushReturnAddressFrom(scratch1);
GenerateFastApiCallBody(masm, optimization, argc, true);
}
@@ -1307,7 +1304,7 @@ Register LoadStubCompiler::CallbackHandlerFrontend(
__ movq(scratch2(),
Operand(dictionary, index, times_pointer_size,
kValueOffset - kHeapObjectTag));
- __ movq(scratch3(), callback, RelocInfo::EMBEDDED_OBJECT);
+ __ Move(scratch3(), callback, RelocInfo::EMBEDDED_OBJECT);
__ cmpq(scratch2(), scratch3());
__ j(not_equal, &miss);
}
@@ -2378,10 +2375,10 @@ void StubCompiler::GenerateBooleanCheck(Register object, Label* miss) {
}
-void CallStubCompiler::PatchGlobalProxy(Handle<Object> object) {
+void CallStubCompiler::PatchImplicitReceiver(Handle<Object> object) {
if (object->IsGlobalObject()) {
StackArgumentsAccessor args(rsp, arguments());
- __ movq(rdx, FieldOperand(rdx, GlobalObject::kGlobalReceiverOffset));
+ __ LoadRoot(rdx, Heap::kUndefinedValueRootIndex);
__ movq(args.GetReceiverOperand(), rdx);
}
}
@@ -2475,7 +2472,7 @@ void CallStubCompiler::GenerateJumpFunction(Handle<Object> object,
GenerateFunctionCheck(function, rbx, miss);
if (!function.is(rdi)) __ movq(rdi, function);
- PatchGlobalProxy(object);
+ PatchImplicitReceiver(object);
// Invoke the function.
__ InvokeFunction(rdi, arguments(), JUMP_FUNCTION,
@@ -2667,7 +2664,7 @@ Handle<Code> KeyedStoreStubCompiler::CompileStorePolymorphic(
} else {
Label next_map;
__ j(not_equal, &next_map, Label::kNear);
- __ movq(transition_map(),
+ __ Move(transition_map(),
transitioned_maps->at(i),
RelocInfo::EMBEDDED_OBJECT);
__ jmp(handler_stubs->at(i), RelocInfo::CODE_TARGET);
« no previous file with comments | « src/x64/macro-assembler-x64.cc ('k') | src/zone.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698