OLD | NEW |
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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 // Args: name, code kind, extra IC state, interface descriptor | 43 // Args: name, code kind, extra IC state, interface descriptor |
44 // ASM: Builtin in platform-dependent assembly. | 44 // ASM: Builtin in platform-dependent assembly. |
45 // Args: name | 45 // Args: name |
46 // ASH: Handlers implemented in platform-dependent assembly. | 46 // ASH: Handlers implemented in platform-dependent assembly. |
47 // Args: name, code kind, extra IC state | 47 // Args: name, code kind, extra IC state |
48 // DBG: Builtin in platform-dependent assembly, used by the debugger. | 48 // DBG: Builtin in platform-dependent assembly, used by the debugger. |
49 // Args: name | 49 // Args: name |
50 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ | 50 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
51 ASM(Abort) \ | 51 ASM(Abort) \ |
52 /* Handlers */ \ | 52 /* Handlers */ \ |
| 53 ASH(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, kNoExtraICState) \ |
53 ASM(KeyedLoadIC_Miss) \ | 54 ASM(KeyedLoadIC_Miss) \ |
54 ASM(KeyedStoreIC_Miss) \ | 55 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ |
55 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ | |
56 ASH(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, kNoExtraICState) \ | |
57 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ | |
58 ASH(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, kNoExtraICState) \ | 56 ASH(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, kNoExtraICState) \ |
59 ASH(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, \ | 57 ASH(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, \ |
60 StoreICState::kStrictModeState) \ | 58 StoreICState::kStrictModeState) \ |
61 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ | 59 ASM(KeyedStoreIC_Miss) \ |
62 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ | 60 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ |
63 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ | |
64 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ | |
65 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ | 61 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ |
| 62 TFS(LoadGlobalIC_SlowInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ |
| 63 LoadGlobalWithVector) \ |
66 TFS(LoadGlobalIC_SlowNotInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 64 TFS(LoadGlobalIC_SlowNotInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ |
67 LoadGlobalWithVector) \ | 65 LoadGlobalWithVector) \ |
68 TFS(LoadGlobalIC_SlowInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 66 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ |
69 LoadGlobalWithVector) \ | |
70 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ | 67 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ |
| 68 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ |
71 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ | 69 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ |
72 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ | 70 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ |
| 71 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ |
| 72 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ |
73 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ | 73 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ |
74 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ | 74 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ |
75 \ | 75 \ |
76 /* Code aging */ \ | 76 /* Code aging */ \ |
77 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ | 77 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ |
78 \ | 78 \ |
79 /* Calls */ \ | 79 /* Calls */ \ |
80 ASM(ArgumentsAdaptorTrampoline) \ | 80 ASM(ArgumentsAdaptorTrampoline) \ |
81 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ | 81 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ |
82 ASM(CallFunction_ReceiverIsNullOrUndefined) \ | 82 ASM(CallFunction_ReceiverIsNullOrUndefined) \ |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 ASM(JSConstructEntryTrampoline) \ | 117 ASM(JSConstructEntryTrampoline) \ |
118 ASM(ResumeGeneratorTrampoline) \ | 118 ASM(ResumeGeneratorTrampoline) \ |
119 \ | 119 \ |
120 /* Stack and interrupt check */ \ | 120 /* Stack and interrupt check */ \ |
121 ASM(InterruptCheck) \ | 121 ASM(InterruptCheck) \ |
122 ASM(StackCheck) \ | 122 ASM(StackCheck) \ |
123 \ | 123 \ |
124 /* Interpreter */ \ | 124 /* Interpreter */ \ |
125 ASM(InterpreterEntryTrampoline) \ | 125 ASM(InterpreterEntryTrampoline) \ |
126 ASM(InterpreterMarkBaselineOnReturn) \ | 126 ASM(InterpreterMarkBaselineOnReturn) \ |
| 127 ASM(InterpreterPushArgsAndCall) \ |
127 ASM(InterpreterPushArgsAndCallFunction) \ | 128 ASM(InterpreterPushArgsAndCallFunction) \ |
| 129 ASM(InterpreterPushArgsAndConstruct) \ |
| 130 ASM(InterpreterPushArgsAndTailCall) \ |
128 ASM(InterpreterPushArgsAndTailCallFunction) \ | 131 ASM(InterpreterPushArgsAndTailCallFunction) \ |
129 ASM(InterpreterPushArgsAndCall) \ | |
130 ASM(InterpreterPushArgsAndTailCall) \ | |
131 ASM(InterpreterPushArgsAndConstruct) \ | |
132 ASM(InterpreterEnterBytecodeDispatch) \ | 132 ASM(InterpreterEnterBytecodeDispatch) \ |
133 \ | 133 \ |
134 /* Code life-cycle */ \ | 134 /* Code life-cycle */ \ |
135 ASM(CompileLazy) \ | 135 ASM(CompileLazy) \ |
136 ASM(CompileBaseline) \ | 136 ASM(CompileBaseline) \ |
137 ASM(CompileOptimized) \ | 137 ASM(CompileOptimized) \ |
138 ASM(CompileOptimizedConcurrent) \ | 138 ASM(CompileOptimizedConcurrent) \ |
139 ASM(InOptimizationQueue) \ | 139 ASM(InOptimizationQueue) \ |
140 ASM(InstantiateAsmJs) \ | 140 ASM(InstantiateAsmJs) \ |
141 ASM(MarkCodeAsToBeExecutedOnce) \ | 141 ASM(MarkCodeAsToBeExecutedOnce) \ |
(...skipping 10 matching lines...) Expand all Loading... |
152 API(HandleApiCall) \ | 152 API(HandleApiCall) \ |
153 API(HandleApiCallAsFunction) \ | 153 API(HandleApiCallAsFunction) \ |
154 API(HandleApiCallAsConstructor) \ | 154 API(HandleApiCallAsConstructor) \ |
155 ASM(HandleFastApiCall) \ | 155 ASM(HandleFastApiCall) \ |
156 \ | 156 \ |
157 /* Adapters for Turbofan into runtime */ \ | 157 /* Adapters for Turbofan into runtime */ \ |
158 ASM(AllocateInNewSpace) \ | 158 ASM(AllocateInNewSpace) \ |
159 ASM(AllocateInOldSpace) \ | 159 ASM(AllocateInOldSpace) \ |
160 \ | 160 \ |
161 /* Debugger */ \ | 161 /* Debugger */ \ |
| 162 DBG(FrameDropper_LiveEdit) \ |
162 DBG(Return_DebugBreak) \ | 163 DBG(Return_DebugBreak) \ |
163 DBG(Slot_DebugBreak) \ | 164 DBG(Slot_DebugBreak) \ |
164 DBG(FrameDropper_LiveEdit) \ | |
165 \ | 165 \ |
166 /* Type conversions */ \ | 166 /* Type conversions */ \ |
167 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ | 167 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ |
168 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ | 168 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ |
169 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ | 169 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ |
170 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ | 170 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ |
171 TypeConversion) \ | 171 TypeConversion) \ |
172 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ | 172 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ |
173 TypeConversion) \ | 173 TypeConversion) \ |
174 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ | 174 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 | 643 |
644 friend class Isolate; | 644 friend class Isolate; |
645 | 645 |
646 DISALLOW_COPY_AND_ASSIGN(Builtins); | 646 DISALLOW_COPY_AND_ASSIGN(Builtins); |
647 }; | 647 }; |
648 | 648 |
649 } // namespace internal | 649 } // namespace internal |
650 } // namespace v8 | 650 } // namespace v8 |
651 | 651 |
652 #endif // V8_BUILTINS_BUILTINS_H_ | 652 #endif // V8_BUILTINS_BUILTINS_H_ |
OLD | NEW |