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

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

Issue 2435023002: Use a different map to distinguish eval contexts (Closed)
Patch Set: relax dchecks Created 4 years, 1 month 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/code-stub-assembler.h" 10 #include "src/code-stub-assembler.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 V(Inc) \ 106 V(Inc) \
107 V(InternalArrayNoArgumentConstructor) \ 107 V(InternalArrayNoArgumentConstructor) \
108 V(InternalArraySingleArgumentConstructor) \ 108 V(InternalArraySingleArgumentConstructor) \
109 V(Dec) \ 109 V(Dec) \
110 V(ElementsTransitionAndStore) \ 110 V(ElementsTransitionAndStore) \
111 V(FastCloneRegExp) \ 111 V(FastCloneRegExp) \
112 V(FastCloneShallowArray) \ 112 V(FastCloneShallowArray) \
113 V(FastCloneShallowObject) \ 113 V(FastCloneShallowObject) \
114 V(FastNewClosure) \ 114 V(FastNewClosure) \
115 V(FastNewFunctionContext) \ 115 V(FastNewFunctionContext) \
116 V(FastNewEvalContext) \
116 V(KeyedLoadSloppyArguments) \ 117 V(KeyedLoadSloppyArguments) \
117 V(KeyedStoreSloppyArguments) \ 118 V(KeyedStoreSloppyArguments) \
118 V(LoadScriptContextField) \ 119 V(LoadScriptContextField) \
119 V(StoreScriptContextField) \ 120 V(StoreScriptContextField) \
120 V(NumberToString) \ 121 V(NumberToString) \
121 V(StringAdd) \ 122 V(StringAdd) \
122 V(GetProperty) \ 123 V(GetProperty) \
123 V(LoadIC) \ 124 V(LoadIC) \
124 V(KeyedLoadICTF) \ 125 V(KeyedLoadICTF) \
125 V(StoreFastElement) \ 126 V(StoreFastElement) \
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 private: 859 private:
859 // FastNewFunctionContextStub can only allocate closures which fit in the 860 // FastNewFunctionContextStub can only allocate closures which fit in the
860 // new space. 861 // new space.
861 STATIC_ASSERT(((kMaximumSlots + Context::MIN_CONTEXT_SLOTS) * kPointerSize + 862 STATIC_ASSERT(((kMaximumSlots + Context::MIN_CONTEXT_SLOTS) * kPointerSize +
862 FixedArray::kHeaderSize) < kMaxRegularHeapObjectSize); 863 FixedArray::kHeaderSize) < kMaxRegularHeapObjectSize);
863 864
864 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewFunctionContext); 865 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewFunctionContext);
865 DEFINE_TURBOFAN_CODE_STUB(FastNewFunctionContext, TurboFanCodeStub); 866 DEFINE_TURBOFAN_CODE_STUB(FastNewFunctionContext, TurboFanCodeStub);
866 }; 867 };
867 868
869 class FastNewEvalContextStub final : public TurboFanCodeStub {
870 public:
871 static const int kMaximumSlots = 0x8000;
872
873 explicit FastNewEvalContextStub(Isolate* isolate)
874 : TurboFanCodeStub(isolate) {}
875
876 static compiler::Node* Generate(CodeStubAssembler* assembler,
877 compiler::Node* function,
878 compiler::Node* slots,
879 compiler::Node* context);
880
881 private:
882 // FastNewEvalContextStub can only allocate closures which fit in the
883 // new space.
884 STATIC_ASSERT(((kMaximumSlots + Context::MIN_CONTEXT_SLOTS) * kPointerSize +
885 FixedArray::kHeaderSize) < kMaxRegularHeapObjectSize);
886
887 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewEvalContext);
888 DEFINE_TURBOFAN_CODE_STUB(FastNewEvalContext, TurboFanCodeStub);
889 };
868 890
869 class FastNewObjectStub final : public PlatformCodeStub { 891 class FastNewObjectStub final : public PlatformCodeStub {
870 public: 892 public:
871 explicit FastNewObjectStub(Isolate* isolate) : PlatformCodeStub(isolate) {} 893 explicit FastNewObjectStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
872 894
873 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewObject); 895 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewObject);
874 DEFINE_PLATFORM_CODE_STUB(FastNewObject, PlatformCodeStub); 896 DEFINE_PLATFORM_CODE_STUB(FastNewObject, PlatformCodeStub);
875 }; 897 };
876 898
877 899
(...skipping 1841 matching lines...) Expand 10 before | Expand all | Expand 10 after
2719 #undef DEFINE_PLATFORM_CODE_STUB 2741 #undef DEFINE_PLATFORM_CODE_STUB
2720 #undef DEFINE_HANDLER_CODE_STUB 2742 #undef DEFINE_HANDLER_CODE_STUB
2721 #undef DEFINE_HYDROGEN_CODE_STUB 2743 #undef DEFINE_HYDROGEN_CODE_STUB
2722 #undef DEFINE_CODE_STUB 2744 #undef DEFINE_CODE_STUB
2723 #undef DEFINE_CODE_STUB_BASE 2745 #undef DEFINE_CODE_STUB_BASE
2724 2746
2725 } // namespace internal 2747 } // namespace internal
2726 } // namespace v8 2748 } // namespace v8
2727 2749
2728 #endif // V8_CODE_STUBS_H_ 2750 #endif // V8_CODE_STUBS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698