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

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

Issue 499343002: Added vector-based loadic hydrogen stubs. Not yet callable. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: More comments. Created 6 years, 3 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/factory.h" 10 #include "src/factory.h"
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 657
658 void InstanceofStub::InitializeInterfaceDescriptor( 658 void InstanceofStub::InitializeInterfaceDescriptor(
659 CodeStubInterfaceDescriptor* descriptor) { 659 CodeStubInterfaceDescriptor* descriptor) {
660 Register registers[] = { InterfaceDescriptor::ContextRegister(), 660 Register registers[] = { InterfaceDescriptor::ContextRegister(),
661 InstanceofStub::left(), 661 InstanceofStub::left(),
662 InstanceofStub::right() }; 662 InstanceofStub::right() };
663 descriptor->Initialize(MajorKey(), arraysize(registers), registers); 663 descriptor->Initialize(MajorKey(), arraysize(registers), registers);
664 } 664 }
665 665
666 666
667 static void InitializeVectorLoadStub(CodeStubInterfaceDescriptor* descriptor,
668 CodeStub::Major major,
669 Address deoptimization_handler) {
670 DCHECK(FLAG_vector_ics);
671 Register registers[] = {InterfaceDescriptor::ContextRegister(),
672 FullVectorLoadConvention::ReceiverRegister(),
673 FullVectorLoadConvention::NameRegister(),
674 FullVectorLoadConvention::SlotRegister(),
675 FullVectorLoadConvention::VectorRegister()};
676 descriptor->Initialize(major, arraysize(registers), registers,
677 deoptimization_handler);
678 }
679
680
681 void VectorLoadStub::InitializeInterfaceDescriptor(
682 CodeStubInterfaceDescriptor* descriptor) {
683 InitializeVectorLoadStub(descriptor, MajorKey(),
684 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure));
685 }
686
687
688 void VectorKeyedLoadStub::InitializeInterfaceDescriptor(
689 CodeStubInterfaceDescriptor* descriptor) {
690 InitializeVectorLoadStub(
691 descriptor, MajorKey(),
692 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure));
693 }
694
695
667 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) { 696 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) {
668 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm); 697 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm);
669 } 698 }
670 699
671 700
672 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { 701 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
673 CreateAllocationSiteStub stub(isolate); 702 CreateAllocationSiteStub stub(isolate);
674 stub.GetCode(); 703 stub.GetCode();
675 } 704 }
676 705
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 InstallDescriptor(isolate, &stub3); 1007 InstallDescriptor(isolate, &stub3);
979 } 1008 }
980 1009
981 InternalArrayConstructorStub::InternalArrayConstructorStub( 1010 InternalArrayConstructorStub::InternalArrayConstructorStub(
982 Isolate* isolate) : PlatformCodeStub(isolate) { 1011 Isolate* isolate) : PlatformCodeStub(isolate) {
983 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 1012 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
984 } 1013 }
985 1014
986 1015
987 } } // namespace v8::internal 1016 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698