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

Side by Side Diff: src/x64/code-stubs-x64.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_X64 7 #if V8_TARGET_ARCH_X64
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 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 __ bind(&done); 757 __ bind(&done);
758 __ IncrementCounter(counters->math_pow(), 1); 758 __ IncrementCounter(counters->math_pow(), 1);
759 __ ret(0); 759 __ ret(0);
760 } 760 }
761 } 761 }
762 762
763 763
764 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { 764 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
765 Label miss; 765 Label miss;
766 Register receiver = LoadIC::ReceiverRegister(); 766 Register receiver = LoadIC::ReceiverRegister();
767 Register name = LoadIC::NameRegister();
768 767
769 ASSERT(kind() == Code::LOAD_IC || 768 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, r8,
770 kind() == Code::KEYED_LOAD_IC); 769 r9, &miss);
771
772 if (kind() == Code::KEYED_LOAD_IC) {
773 __ Cmp(name, isolate()->factory()->prototype_string());
774 __ j(not_equal, &miss);
775 }
776
777 StubCompiler::GenerateLoadFunctionPrototype(masm, receiver, r8, r9, &miss);
778 __ bind(&miss); 770 __ bind(&miss);
779 StubCompiler::TailCallBuiltin( 771 PropertyAccessCompiler::TailCallBuiltin(
780 masm, BaseLoadStoreStubCompiler::MissBuiltin(kind())); 772 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
781 } 773 }
782 774
783 775
784 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) { 776 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) {
785 // The key is in rdx and the parameter count is in rax. 777 // The key is in rdx and the parameter count is in rax.
786 778
787 // Check that the key is a smi. 779 // Check that the key is a smi.
788 Label slow; 780 Label slow;
789 __ JumpIfNotSmi(rdx, &slow); 781 __ JumpIfNotSmi(rdx, &slow);
790 782
(...skipping 4131 matching lines...) Expand 10 before | Expand all | Expand 10 after
4922 return_value_operand, 4914 return_value_operand,
4923 NULL); 4915 NULL);
4924 } 4916 }
4925 4917
4926 4918
4927 #undef __ 4919 #undef __
4928 4920
4929 } } // namespace v8::internal 4921 } } // namespace v8::internal
4930 4922
4931 #endif // V8_TARGET_ARCH_X64 4923 #endif // V8_TARGET_ARCH_X64
OLDNEW
« src/ia32/stub-cache-ia32.cc ('K') | « src/stub-cache.cc ('k') | src/x64/stub-cache-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698