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

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

Issue 1292173003: VectorICs: New interface descriptor for vector transitioning stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « src/code-stubs.h ('k') | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/code-stubs.h" 5 #include "src/code-stubs.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/cpu-profiler.h" 10 #include "src/cpu-profiler.h"
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); 646 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure));
647 } 647 }
648 } 648 }
649 649
650 650
651 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { 651 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const {
652 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { 652 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) {
653 return LoadWithVectorDescriptor(isolate()); 653 return LoadWithVectorDescriptor(isolate());
654 } else { 654 } else {
655 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); 655 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC);
656 return StoreDescriptor(isolate()); 656 return FLAG_vector_stores ? VectorStoreICDescriptor(isolate())
657 : StoreDescriptor(isolate());
657 } 658 }
658 } 659 }
659 660
660 661
661 void StoreFastElementStub::InitializeDescriptor( 662 void StoreFastElementStub::InitializeDescriptor(
662 CodeStubDescriptor* descriptor) { 663 CodeStubDescriptor* descriptor) {
663 descriptor->Initialize( 664 descriptor->Initialize(
664 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); 665 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure));
665 } 666 }
666 667
667 668
668 void ElementsTransitionAndStoreStub::InitializeDescriptor( 669 void ElementsTransitionAndStoreStub::InitializeDescriptor(
669 CodeStubDescriptor* descriptor) { 670 CodeStubDescriptor* descriptor) {
670 descriptor->Initialize( 671 descriptor->Initialize(
671 FUNCTION_ADDR(Runtime_ElementsTransitionAndStoreIC_Miss)); 672 FUNCTION_ADDR(Runtime_ElementsTransitionAndStoreIC_Miss));
672 } 673 }
673 674
674 675
675 void ToObjectStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { 676 void ToObjectStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
676 descriptor->Initialize(Runtime::FunctionForId(Runtime::kToObject)->entry); 677 descriptor->Initialize(Runtime::FunctionForId(Runtime::kToObject)->entry);
677 } 678 }
678 679
679 680
680 CallInterfaceDescriptor StoreTransitionStub::GetCallInterfaceDescriptor() 681 CallInterfaceDescriptor StoreTransitionStub::GetCallInterfaceDescriptor()
681 const { 682 const {
683 if (FLAG_vector_stores) {
684 return VectorStoreTransitionDescriptor(isolate());
685 }
682 return StoreTransitionDescriptor(isolate()); 686 return StoreTransitionDescriptor(isolate());
683 } 687 }
684 688
689
690 CallInterfaceDescriptor
691 ElementsTransitionAndStoreStub::GetCallInterfaceDescriptor() const {
692 if (FLAG_vector_stores) {
693 return VectorStoreTransitionDescriptor(isolate());
694 }
695 return StoreTransitionDescriptor(isolate());
696 }
697
685 698
686 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { 699 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
687 descriptor->Initialize( 700 descriptor->Initialize(
688 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); 701 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
689 } 702 }
690 703
691 704
692 void FastNewContextStub::InitializeDescriptor(CodeStubDescriptor* d) {} 705 void FastNewContextStub::InitializeDescriptor(CodeStubDescriptor* d) {}
693 706
694 707
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 1083
1071 if (type->Is(Type::UntaggedPointer())) { 1084 if (type->Is(Type::UntaggedPointer())) {
1072 return Representation::External(); 1085 return Representation::External();
1073 } 1086 }
1074 1087
1075 DCHECK(!type->Is(Type::Untagged())); 1088 DCHECK(!type->Is(Type::Untagged()));
1076 return Representation::Tagged(); 1089 return Representation::Tagged();
1077 } 1090 }
1078 } // namespace internal 1091 } // namespace internal
1079 } // namespace v8 1092 } // namespace v8
OLDNEW
« no previous file with comments | « 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