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

Side by Side Diff: src/arm64/code-stubs-arm64.cc

Issue 411973002: Restructure the IC / Handler compilers (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1696 __ PopCalleeSavedRegisters(); 1696 __ PopCalleeSavedRegisters();
1697 // After this point, we must not modify jssp because it is a callee-saved 1697 // After this point, we must not modify jssp because it is a callee-saved
1698 // register which we have just restored. 1698 // register which we have just restored.
1699 __ Ret(); 1699 __ Ret();
1700 } 1700 }
1701 1701
1702 1702
1703 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { 1703 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1704 Label miss; 1704 Label miss;
1705 Register receiver = LoadIC::ReceiverRegister(); 1705 Register receiver = LoadIC::ReceiverRegister();
1706 Register name = LoadIC::NameRegister();
1707 1706
1708 ASSERT(kind() == Code::LOAD_IC || 1707 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10,
1709 kind() == Code::KEYED_LOAD_IC); 1708 x11, &miss);
1710
1711 if (kind() == Code::KEYED_LOAD_IC) {
1712 __ Cmp(name, Operand(isolate()->factory()->prototype_string()));
1713 __ B(ne, &miss);
1714 }
1715
1716 StubCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10, x11, &miss);
1717 1709
1718 __ Bind(&miss); 1710 __ Bind(&miss);
1719 StubCompiler::TailCallBuiltin(masm, 1711 PropertyAccessCompiler::TailCallBuiltin(
1720 BaseLoadStoreStubCompiler::MissBuiltin(kind())); 1712 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1721 } 1713 }
1722 1714
1723 1715
1724 void InstanceofStub::Generate(MacroAssembler* masm) { 1716 void InstanceofStub::Generate(MacroAssembler* masm) {
1725 // Stack on entry: 1717 // Stack on entry:
1726 // jssp[0]: function. 1718 // jssp[0]: function.
1727 // jssp[8]: object. 1719 // jssp[8]: object.
1728 // 1720 //
1729 // Returns result in x0. Zero indicates instanceof, smi 1 indicates not 1721 // Returns result in x0. Zero indicates instanceof, smi 1 indicates not
1730 // instanceof. 1722 // instanceof.
(...skipping 3670 matching lines...) Expand 10 before | Expand all | Expand 10 after
5401 MemOperand(fp, 6 * kPointerSize), 5393 MemOperand(fp, 6 * kPointerSize),
5402 NULL); 5394 NULL);
5403 } 5395 }
5404 5396
5405 5397
5406 #undef __ 5398 #undef __
5407 5399
5408 } } // namespace v8::internal 5400 } } // namespace v8::internal
5409 5401
5410 #endif // V8_TARGET_ARCH_ARM64 5402 #endif // V8_TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698