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

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

Issue 535873002: Encapsulate megamorphic load/tail-call in hydrogen (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Cleanup and ports. 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 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 578
579 579
580 void VectorKeyedLoadStub::InitializeInterfaceDescriptor( 580 void VectorKeyedLoadStub::InitializeInterfaceDescriptor(
581 CodeStubInterfaceDescriptor* descriptor) { 581 CodeStubInterfaceDescriptor* descriptor) {
582 InitializeVectorLoadStub( 582 InitializeVectorLoadStub(
583 isolate(), descriptor, MajorKey(), 583 isolate(), descriptor, MajorKey(),
584 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure)); 584 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure));
585 } 585 }
586 586
587 587
588 void MegamorphicLoadStub::InitializeInterfaceDescriptor(
589 CodeStubInterfaceDescriptor* descriptor) {
590 LoadDescriptor call_descriptor(isolate());
591 descriptor->Initialize(MajorKey(), call_descriptor);
592 }
593
594
588 void FastNewClosureStub::InitializeInterfaceDescriptor( 595 void FastNewClosureStub::InitializeInterfaceDescriptor(
589 CodeStubInterfaceDescriptor* descriptor) { 596 CodeStubInterfaceDescriptor* descriptor) {
590 FastNewClosureDescriptor call_descriptor(isolate()); 597 FastNewClosureDescriptor call_descriptor(isolate());
591 descriptor->Initialize( 598 descriptor->Initialize(
592 MajorKey(), call_descriptor, 599 MajorKey(), call_descriptor,
593 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); 600 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
594 } 601 }
595 602
596 603
597 void FastNewContextStub::InitializeInterfaceDescriptor( 604 void FastNewContextStub::InitializeInterfaceDescriptor(
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 1015
1009 1016
1010 // static 1017 // static
1011 void KeyedLoadGenericStub::InstallDescriptors(Isolate* isolate) { 1018 void KeyedLoadGenericStub::InstallDescriptors(Isolate* isolate) {
1012 KeyedLoadGenericStub stub(isolate); 1019 KeyedLoadGenericStub stub(isolate);
1013 InstallDescriptor(isolate, &stub); 1020 InstallDescriptor(isolate, &stub);
1014 } 1021 }
1015 1022
1016 1023
1017 // static 1024 // static
1025 void MegamorphicLoadStub::InstallDescriptors(Isolate* isolate) {
1026 MegamorphicLoadStub stub(isolate, LoadIC::State(CONTEXTUAL));
1027 InstallDescriptor(isolate, &stub);
1028 }
1029
1030
1031 // static
1018 void StoreFieldStub::InstallDescriptors(Isolate* isolate) { 1032 void StoreFieldStub::InstallDescriptors(Isolate* isolate) {
1019 StoreFieldStub stub(isolate, FieldIndex::ForInObjectOffset(0), 1033 StoreFieldStub stub(isolate, FieldIndex::ForInObjectOffset(0),
1020 Representation::None()); 1034 Representation::None());
1021 InstallDescriptor(isolate, &stub); 1035 InstallDescriptor(isolate, &stub);
1022 } 1036 }
1023 1037
1024 1038
1025 // static 1039 // static
1026 void LoadFastElementStub::InstallDescriptors(Isolate* isolate) { 1040 void LoadFastElementStub::InstallDescriptors(Isolate* isolate) {
1027 LoadFastElementStub stub(isolate, true, FAST_ELEMENTS); 1041 LoadFastElementStub stub(isolate, true, FAST_ELEMENTS);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 InstallDescriptor(isolate, &stub3); 1075 InstallDescriptor(isolate, &stub3);
1062 } 1076 }
1063 1077
1064 InternalArrayConstructorStub::InternalArrayConstructorStub( 1078 InternalArrayConstructorStub::InternalArrayConstructorStub(
1065 Isolate* isolate) : PlatformCodeStub(isolate) { 1079 Isolate* isolate) : PlatformCodeStub(isolate) {
1066 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 1080 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
1067 } 1081 }
1068 1082
1069 1083
1070 } } // namespace v8::internal 1084 } } // namespace v8::internal
OLDNEW
« src/code-stubs.h ('K') | « src/code-stubs.h ('k') | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698