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

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

Issue 498283002: Change more PlatformCodeStubs to encode properties in the minor key. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: fix instanceof 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
« no previous file with comments | « src/code-stubs.h ('k') | src/codegen.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/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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 } 667 }
668 668
669 669
670 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { 670 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
671 CreateAllocationSiteStub stub(isolate); 671 CreateAllocationSiteStub stub(isolate);
672 stub.GetCode(); 672 stub.GetCode();
673 } 673 }
674 674
675 675
676 void StoreElementStub::Generate(MacroAssembler* masm) { 676 void StoreElementStub::Generate(MacroAssembler* masm) {
677 switch (elements_kind_) { 677 switch (elements_kind()) {
678 case FAST_ELEMENTS: 678 case FAST_ELEMENTS:
679 case FAST_HOLEY_ELEMENTS: 679 case FAST_HOLEY_ELEMENTS:
680 case FAST_SMI_ELEMENTS: 680 case FAST_SMI_ELEMENTS:
681 case FAST_HOLEY_SMI_ELEMENTS: 681 case FAST_HOLEY_SMI_ELEMENTS:
682 case FAST_DOUBLE_ELEMENTS: 682 case FAST_DOUBLE_ELEMENTS:
683 case FAST_HOLEY_DOUBLE_ELEMENTS: 683 case FAST_HOLEY_DOUBLE_ELEMENTS:
684 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 684 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
685 case EXTERNAL_##TYPE##_ELEMENTS: \ 685 case EXTERNAL_##TYPE##_ELEMENTS: \
686 case TYPE##_ELEMENTS: 686 case TYPE##_ELEMENTS:
687 687
688 TYPED_ARRAYS(TYPED_ARRAY_CASE) 688 TYPED_ARRAYS(TYPED_ARRAY_CASE)
689 #undef TYPED_ARRAY_CASE 689 #undef TYPED_ARRAY_CASE
690 UNREACHABLE(); 690 UNREACHABLE();
691 break; 691 break;
692 case DICTIONARY_ELEMENTS: 692 case DICTIONARY_ELEMENTS:
693 ElementHandlerCompiler::GenerateStoreSlow(masm); 693 ElementHandlerCompiler::GenerateStoreSlow(masm);
694 break; 694 break;
695 case SLOPPY_ARGUMENTS_ELEMENTS: 695 case SLOPPY_ARGUMENTS_ELEMENTS:
696 UNREACHABLE(); 696 UNREACHABLE();
697 break; 697 break;
698 } 698 }
699 } 699 }
700 700
701 701
702 void ArgumentsAccessStub::Generate(MacroAssembler* masm) {
703 switch (type()) {
704 case READ_ELEMENT:
705 GenerateReadElement(masm);
706 break;
707 case NEW_SLOPPY_FAST:
708 GenerateNewSloppyFast(masm);
709 break;
710 case NEW_SLOPPY_SLOW:
711 GenerateNewSloppySlow(masm);
712 break;
713 case NEW_STRICT:
714 GenerateNewStrict(masm);
715 break;
716 }
717 }
718
719
702 void ArgumentsAccessStub::PrintName(OStream& os) const { // NOLINT 720 void ArgumentsAccessStub::PrintName(OStream& os) const { // NOLINT
703 os << "ArgumentsAccessStub_"; 721 os << "ArgumentsAccessStub_";
704 switch (type_) { 722 switch (type()) {
705 case READ_ELEMENT: 723 case READ_ELEMENT:
706 os << "ReadElement"; 724 os << "ReadElement";
707 break; 725 break;
708 case NEW_SLOPPY_FAST: 726 case NEW_SLOPPY_FAST:
709 os << "NewSloppyFast"; 727 os << "NewSloppyFast";
710 break; 728 break;
711 case NEW_SLOPPY_SLOW: 729 case NEW_SLOPPY_SLOW:
712 os << "NewSloppySlow"; 730 os << "NewSloppySlow";
713 break; 731 break;
714 case NEW_STRICT: 732 case NEW_STRICT:
715 os << "NewStrict"; 733 os << "NewStrict";
716 break; 734 break;
717 } 735 }
718 return; 736 return;
719 } 737 }
720 738
721 739
722 void CallFunctionStub::PrintName(OStream& os) const { // NOLINT 740 void CallFunctionStub::PrintName(OStream& os) const { // NOLINT
723 os << "CallFunctionStub_Args" << argc_; 741 os << "CallFunctionStub_Args" << argc();
724 } 742 }
725 743
726 744
727 void CallConstructStub::PrintName(OStream& os) const { // NOLINT 745 void CallConstructStub::PrintName(OStream& os) const { // NOLINT
728 os << "CallConstructStub"; 746 os << "CallConstructStub";
729 if (RecordCallTarget()) os << "_Recording"; 747 if (RecordCallTarget()) os << "_Recording";
730 } 748 }
731 749
732 750
733 void ArrayConstructorStub::PrintName(OStream& os) const { // NOLINT 751 void ArrayConstructorStub::PrintName(OStream& os) const { // NOLINT
734 os << "ArrayConstructorStub"; 752 os << "ArrayConstructorStub";
735 switch (argument_count_) { 753 switch (argument_count()) {
736 case ANY: 754 case ANY:
737 os << "_Any"; 755 os << "_Any";
738 break; 756 break;
739 case NONE: 757 case NONE:
740 os << "_None"; 758 os << "_None";
741 break; 759 break;
742 case ONE: 760 case ONE:
743 os << "_One"; 761 os << "_One";
744 break; 762 break;
745 case MORE_THAN_ONE: 763 case MORE_THAN_ONE:
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 957
940 // static 958 // static
941 void StoreFieldStub::InstallDescriptors(Isolate* isolate) { 959 void StoreFieldStub::InstallDescriptors(Isolate* isolate) {
942 StoreFieldStub stub(isolate, FieldIndex::ForInObjectOffset(0), 960 StoreFieldStub stub(isolate, FieldIndex::ForInObjectOffset(0),
943 Representation::None()); 961 Representation::None());
944 InstallDescriptor(isolate, &stub); 962 InstallDescriptor(isolate, &stub);
945 } 963 }
946 964
947 965
948 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate) 966 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
949 : PlatformCodeStub(isolate), argument_count_(ANY) { 967 : PlatformCodeStub(isolate) {
968 minor_key_ = ArgumentCountBits::encode(ANY);
950 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 969 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
951 } 970 }
952 971
953 972
954 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate, 973 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate,
955 int argument_count) 974 int argument_count)
956 : PlatformCodeStub(isolate) { 975 : PlatformCodeStub(isolate) {
957 if (argument_count == 0) { 976 if (argument_count == 0) {
958 argument_count_ = NONE; 977 minor_key_ = ArgumentCountBits::encode(NONE);
959 } else if (argument_count == 1) { 978 } else if (argument_count == 1) {
960 argument_count_ = ONE; 979 minor_key_ = ArgumentCountBits::encode(ONE);
961 } else if (argument_count >= 2) { 980 } else if (argument_count >= 2) {
962 argument_count_ = MORE_THAN_ONE; 981 minor_key_ = ArgumentCountBits::encode(MORE_THAN_ONE);
963 } else { 982 } else {
964 UNREACHABLE(); 983 UNREACHABLE();
965 } 984 }
966 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 985 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
967 } 986 }
968 987
969 988
970 void InternalArrayConstructorStubBase::InstallDescriptors(Isolate* isolate) { 989 void InternalArrayConstructorStubBase::InstallDescriptors(Isolate* isolate) {
971 InternalArrayNoArgumentConstructorStub stub1(isolate, FAST_ELEMENTS); 990 InternalArrayNoArgumentConstructorStub stub1(isolate, FAST_ELEMENTS);
972 InstallDescriptor(isolate, &stub1); 991 InstallDescriptor(isolate, &stub1);
973 InternalArraySingleArgumentConstructorStub stub2(isolate, FAST_ELEMENTS); 992 InternalArraySingleArgumentConstructorStub stub2(isolate, FAST_ELEMENTS);
974 InstallDescriptor(isolate, &stub2); 993 InstallDescriptor(isolate, &stub2);
975 InternalArrayNArgumentsConstructorStub stub3(isolate, FAST_ELEMENTS); 994 InternalArrayNArgumentsConstructorStub stub3(isolate, FAST_ELEMENTS);
976 InstallDescriptor(isolate, &stub3); 995 InstallDescriptor(isolate, &stub3);
977 } 996 }
978 997
979 InternalArrayConstructorStub::InternalArrayConstructorStub( 998 InternalArrayConstructorStub::InternalArrayConstructorStub(
980 Isolate* isolate) : PlatformCodeStub(isolate) { 999 Isolate* isolate) : PlatformCodeStub(isolate) {
981 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 1000 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
982 } 1001 }
983 1002
984 1003
985 } } // namespace v8::internal 1004 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698