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

Side by Side Diff: src/builtins/builtins.h

Issue 2571563004: [Turbofan] Implement super calls with spread bytecode in assembly code. (Closed)
Patch Set: MIPS64 port Created 3 years, 11 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/builtins/arm64/builtins-arm64.cc ('k') | src/builtins/builtins-interpreter.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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_BUILTINS_BUILTINS_H_ 5 #ifndef V8_BUILTINS_BUILTINS_H_
6 #define V8_BUILTINS_BUILTINS_H_ 6 #define V8_BUILTINS_BUILTINS_H_
7 7
8 #include "src/base/flags.h" 8 #include "src/base/flags.h"
9 #include "src/handles.h" 9 #include "src/handles.h"
10 10
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 /* Construct */ \ 78 /* Construct */ \
79 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \ 79 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \
80 ASM(ConstructFunction) \ 80 ASM(ConstructFunction) \
81 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \ 81 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \
82 ASM(ConstructBoundFunction) \ 82 ASM(ConstructBoundFunction) \
83 ASM(ConstructedNonConstructable) \ 83 ASM(ConstructedNonConstructable) \
84 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \ 84 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \
85 ASM(ConstructProxy) \ 85 ASM(ConstructProxy) \
86 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \ 86 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \
87 ASM(Construct) \ 87 ASM(Construct) \
88 ASM(ConstructWithSpread) \
88 ASM(JSConstructStubApi) \ 89 ASM(JSConstructStubApi) \
89 ASM(JSConstructStubGeneric) \ 90 ASM(JSConstructStubGeneric) \
90 ASM(JSBuiltinsConstructStub) \ 91 ASM(JSBuiltinsConstructStub) \
91 ASM(JSBuiltinsConstructStubForDerived) \ 92 ASM(JSBuiltinsConstructStubForDerived) \
92 TFS(FastNewClosure, BUILTIN, kNoExtraICState, FastNewClosure) \ 93 TFS(FastNewClosure, BUILTIN, kNoExtraICState, FastNewClosure) \
93 TFS(FastNewFunctionContextEval, BUILTIN, kNoExtraICState, \ 94 TFS(FastNewFunctionContextEval, BUILTIN, kNoExtraICState, \
94 FastNewFunctionContext) \ 95 FastNewFunctionContext) \
95 TFS(FastNewFunctionContextFunction, BUILTIN, kNoExtraICState, \ 96 TFS(FastNewFunctionContextFunction, BUILTIN, kNoExtraICState, \
96 FastNewFunctionContext) \ 97 FastNewFunctionContext) \
97 TFS(FastCloneRegExp, BUILTIN, kNoExtraICState, FastCloneRegExp) \ 98 TFS(FastCloneRegExp, BUILTIN, kNoExtraICState, FastCloneRegExp) \
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 \ 137 \
137 /* Interpreter */ \ 138 /* Interpreter */ \
138 ASM(InterpreterEntryTrampoline) \ 139 ASM(InterpreterEntryTrampoline) \
139 ASM(InterpreterPushArgsAndCall) \ 140 ASM(InterpreterPushArgsAndCall) \
140 ASM(InterpreterPushArgsAndCallFunction) \ 141 ASM(InterpreterPushArgsAndCallFunction) \
141 ASM(InterpreterPushArgsAndTailCall) \ 142 ASM(InterpreterPushArgsAndTailCall) \
142 ASM(InterpreterPushArgsAndTailCallFunction) \ 143 ASM(InterpreterPushArgsAndTailCallFunction) \
143 ASM(InterpreterPushArgsAndConstruct) \ 144 ASM(InterpreterPushArgsAndConstruct) \
144 ASM(InterpreterPushArgsAndConstructFunction) \ 145 ASM(InterpreterPushArgsAndConstructFunction) \
145 ASM(InterpreterPushArgsAndConstructArray) \ 146 ASM(InterpreterPushArgsAndConstructArray) \
147 ASM(InterpreterPushArgsAndConstructWithFinalSpread) \
146 ASM(InterpreterEnterBytecodeAdvance) \ 148 ASM(InterpreterEnterBytecodeAdvance) \
147 ASM(InterpreterEnterBytecodeDispatch) \ 149 ASM(InterpreterEnterBytecodeDispatch) \
148 ASM(InterpreterOnStackReplacement) \ 150 ASM(InterpreterOnStackReplacement) \
149 \ 151 \
150 /* Code life-cycle */ \ 152 /* Code life-cycle */ \
151 ASM(CompileBaseline) \ 153 ASM(CompileBaseline) \
152 ASM(CompileOptimized) \ 154 ASM(CompileOptimized) \
153 ASM(CompileOptimizedConcurrent) \ 155 ASM(CompileOptimizedConcurrent) \
154 ASM(InOptimizationQueue) \ 156 ASM(InOptimizationQueue) \
155 ASM(InstantiateAsmJs) \ 157 ASM(InstantiateAsmJs) \
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 #define BUILTIN_LIST_A(V) \ 787 #define BUILTIN_LIST_A(V) \
786 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ 788 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
787 V, V, V) 789 V, V, V)
788 790
789 #define BUILTIN_LIST_DBG(V) \ 791 #define BUILTIN_LIST_DBG(V) \
790 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ 792 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
791 IGNORE_BUILTIN, IGNORE_BUILTIN, V) 793 IGNORE_BUILTIN, IGNORE_BUILTIN, V)
792 794
793 // Forward declarations. 795 // Forward declarations.
794 class ObjectVisitor; 796 class ObjectVisitor;
797 enum class PushArgsConstructMode : unsigned;
795 namespace compiler { 798 namespace compiler {
796 class CodeAssemblerState; 799 class CodeAssemblerState;
797 } 800 }
798 801
799 class Builtins { 802 class Builtins {
800 public: 803 public:
801 ~Builtins(); 804 ~Builtins();
802 805
803 // Generate all builtin code objects. Should be called once during 806 // Generate all builtin code objects. Should be called once during
804 // isolate initialization. 807 // isolate initialization.
(...skipping 24 matching lines...) Expand all
829 TailCallMode tail_call_mode = TailCallMode::kDisallow); 832 TailCallMode tail_call_mode = TailCallMode::kDisallow);
830 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, 833 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny,
831 TailCallMode tail_call_mode = TailCallMode::kDisallow); 834 TailCallMode tail_call_mode = TailCallMode::kDisallow);
832 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode); 835 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode);
833 Handle<Code> NonPrimitiveToPrimitive( 836 Handle<Code> NonPrimitiveToPrimitive(
834 ToPrimitiveHint hint = ToPrimitiveHint::kDefault); 837 ToPrimitiveHint hint = ToPrimitiveHint::kDefault);
835 Handle<Code> OrdinaryToPrimitive(OrdinaryToPrimitiveHint hint); 838 Handle<Code> OrdinaryToPrimitive(OrdinaryToPrimitiveHint hint);
836 Handle<Code> InterpreterPushArgsAndCall( 839 Handle<Code> InterpreterPushArgsAndCall(
837 TailCallMode tail_call_mode, 840 TailCallMode tail_call_mode,
838 CallableType function_type = CallableType::kAny); 841 CallableType function_type = CallableType::kAny);
839 Handle<Code> InterpreterPushArgsAndConstruct(CallableType function_type); 842 Handle<Code> InterpreterPushArgsAndConstruct(PushArgsConstructMode mode);
840 Handle<Code> NewFunctionContext(ScopeType scope_type); 843 Handle<Code> NewFunctionContext(ScopeType scope_type);
841 Handle<Code> NewCloneShallowArray(AllocationSiteMode allocation_mode); 844 Handle<Code> NewCloneShallowArray(AllocationSiteMode allocation_mode);
842 Handle<Code> NewCloneShallowObject(int length); 845 Handle<Code> NewCloneShallowObject(int length);
843 846
844 Code* builtin(Name name) { 847 Code* builtin(Name name) {
845 // Code::cast cannot be used here since we access builtins 848 // Code::cast cannot be used here since we access builtins
846 // during the marking phase of mark sweep. See IC::Clear. 849 // during the marking phase of mark sweep. See IC::Clear.
847 return reinterpret_cast<Code*>(builtins_[name]); 850 return reinterpret_cast<Code*>(builtins_[name]);
848 } 851 }
849 852
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 TailCallMode tail_call_mode); 890 TailCallMode tail_call_mode);
888 891
889 static void Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode, 892 static void Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode,
890 TailCallMode tail_call_mode); 893 TailCallMode tail_call_mode);
891 894
892 static void Generate_InterpreterPushArgsAndCallImpl( 895 static void Generate_InterpreterPushArgsAndCallImpl(
893 MacroAssembler* masm, TailCallMode tail_call_mode, 896 MacroAssembler* masm, TailCallMode tail_call_mode,
894 CallableType function_type); 897 CallableType function_type);
895 898
896 static void Generate_InterpreterPushArgsAndConstructImpl( 899 static void Generate_InterpreterPushArgsAndConstructImpl(
897 MacroAssembler* masm, CallableType function_type); 900 MacroAssembler* masm, PushArgsConstructMode mode);
898 901
899 enum class MathMaxMinKind { kMax, kMin }; 902 enum class MathMaxMinKind { kMax, kMin };
900 static void Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind); 903 static void Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind);
901 904
902 #define DECLARE_ASM(Name, ...) \ 905 #define DECLARE_ASM(Name, ...) \
903 static void Generate_##Name(MacroAssembler* masm); 906 static void Generate_##Name(MacroAssembler* masm);
904 #define DECLARE_TF(Name, ...) \ 907 #define DECLARE_TF(Name, ...) \
905 static void Generate_##Name(compiler::CodeAssemblerState* state); 908 static void Generate_##Name(compiler::CodeAssemblerState* state);
906 909
907 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, DECLARE_TF, DECLARE_TF, 910 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, DECLARE_TF, DECLARE_TF,
(...skipping 10 matching lines...) Expand all
918 921
919 friend class Isolate; 922 friend class Isolate;
920 923
921 DISALLOW_COPY_AND_ASSIGN(Builtins); 924 DISALLOW_COPY_AND_ASSIGN(Builtins);
922 }; 925 };
923 926
924 } // namespace internal 927 } // namespace internal
925 } // namespace v8 928 } // namespace v8
926 929
927 #endif // V8_BUILTINS_BUILTINS_H_ 930 #endif // V8_BUILTINS_BUILTINS_H_
OLDNEW
« no previous file with comments | « src/builtins/arm64/builtins-arm64.cc ('k') | src/builtins/builtins-interpreter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698