| 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 |