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

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

Issue 1708313002: [stubs] Introduce a dedicated FastNewObjectStub. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove TODO. Created 4 years, 10 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
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 #ifndef V8_CODE_STUBS_H_ 5 #ifndef V8_CODE_STUBS_H_
6 #define V8_CODE_STUBS_H_ 6 #define V8_CODE_STUBS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 V(BinaryOpWithAllocationSite) \ 69 V(BinaryOpWithAllocationSite) \
70 V(CompareNilIC) \ 70 V(CompareNilIC) \
71 V(CreateAllocationSite) \ 71 V(CreateAllocationSite) \
72 V(CreateWeakCell) \ 72 V(CreateWeakCell) \
73 V(ElementsTransitionAndStore) \ 73 V(ElementsTransitionAndStore) \
74 V(FastCloneRegExp) \ 74 V(FastCloneRegExp) \
75 V(FastCloneShallowArray) \ 75 V(FastCloneShallowArray) \
76 V(FastCloneShallowObject) \ 76 V(FastCloneShallowObject) \
77 V(FastNewClosure) \ 77 V(FastNewClosure) \
78 V(FastNewContext) \ 78 V(FastNewContext) \
79 V(FastNewObject) \
79 V(FastNewRestParameter) \ 80 V(FastNewRestParameter) \
80 V(FastNewSloppyArguments) \ 81 V(FastNewSloppyArguments) \
81 V(FastNewStrictArguments) \ 82 V(FastNewStrictArguments) \
82 V(GrowArrayElements) \ 83 V(GrowArrayElements) \
83 V(InternalArrayNArgumentsConstructor) \ 84 V(InternalArrayNArgumentsConstructor) \
84 V(InternalArrayNoArgumentConstructor) \ 85 V(InternalArrayNoArgumentConstructor) \
85 V(InternalArraySingleArgumentConstructor) \ 86 V(InternalArraySingleArgumentConstructor) \
86 V(KeyedLoadGeneric) \ 87 V(KeyedLoadGeneric) \
87 V(LoadGlobalViaContext) \ 88 V(LoadGlobalViaContext) \
88 V(LoadScriptContextField) \ 89 V(LoadScriptContextField) \
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 static const int kFunction = 0; 720 static const int kFunction = 0;
720 721
721 private: 722 private:
722 class SlotsBits : public BitField<int, 0, 8> {}; 723 class SlotsBits : public BitField<int, 0, 8> {};
723 724
724 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewContext); 725 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewContext);
725 DEFINE_HYDROGEN_CODE_STUB(FastNewContext, HydrogenCodeStub); 726 DEFINE_HYDROGEN_CODE_STUB(FastNewContext, HydrogenCodeStub);
726 }; 727 };
727 728
728 729
730 class FastNewObjectStub final : public PlatformCodeStub {
731 public:
732 explicit FastNewObjectStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
733
734 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewObject);
735 DEFINE_PLATFORM_CODE_STUB(FastNewObject, PlatformCodeStub);
736 };
737
738
729 // TODO(turbofan): This stub should be possible to write in TurboFan 739 // TODO(turbofan): This stub should be possible to write in TurboFan
730 // using the CodeStubAssembler very soon in a way that is as efficient 740 // using the CodeStubAssembler very soon in a way that is as efficient
731 // and easy as the current handwritten version, which is partly a copy 741 // and easy as the current handwritten version, which is partly a copy
732 // of the strict arguments object materialization code. 742 // of the strict arguments object materialization code.
733 class FastNewRestParameterStub final : public PlatformCodeStub { 743 class FastNewRestParameterStub final : public PlatformCodeStub {
734 public: 744 public:
735 explicit FastNewRestParameterStub(Isolate* isolate) 745 explicit FastNewRestParameterStub(Isolate* isolate)
736 : PlatformCodeStub(isolate) {} 746 : PlatformCodeStub(isolate) {}
737 747
738 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewRestParameter); 748 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewRestParameter);
(...skipping 2217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2956 #undef DEFINE_HYDROGEN_CODE_STUB 2966 #undef DEFINE_HYDROGEN_CODE_STUB
2957 #undef DEFINE_CODE_STUB 2967 #undef DEFINE_CODE_STUB
2958 #undef DEFINE_CODE_STUB_BASE 2968 #undef DEFINE_CODE_STUB_BASE
2959 2969
2960 extern Representation RepresentationFromType(Type* type); 2970 extern Representation RepresentationFromType(Type* type);
2961 2971
2962 } // namespace internal 2972 } // namespace internal
2963 } // namespace v8 2973 } // namespace v8
2964 2974
2965 #endif // V8_CODE_STUBS_H_ 2975 #endif // V8_CODE_STUBS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698