| Index: src/builtins.h
|
| diff --git a/src/builtins.h b/src/builtins.h
|
| index 88d31c7612f8a34d47e1aa654198cdef214abe1c..ada23a752dbe10d81c5d05a61c3e62c293f02afb 100644
|
| --- a/src/builtins.h
|
| +++ b/src/builtins.h
|
| @@ -63,73 +63,135 @@ enum BuiltinExtraArguments {
|
|
|
| // Define list of builtins implemented in assembly.
|
| #define BUILTIN_LIST_A(V) \
|
| - V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED) \
|
| - V(JSConstructCall, BUILTIN, UNINITIALIZED) \
|
| - V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED) \
|
| - V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED) \
|
| - V(JSConstructStubApi, BUILTIN, UNINITIALIZED) \
|
| - V(JSEntryTrampoline, BUILTIN, UNINITIALIZED) \
|
| - V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED) \
|
| - V(LazyCompile, BUILTIN, UNINITIALIZED) \
|
| - V(LazyRecompile, BUILTIN, UNINITIALIZED) \
|
| - V(NotifyDeoptimized, BUILTIN, UNINITIALIZED) \
|
| - V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED) \
|
| - V(NotifyOSR, BUILTIN, UNINITIALIZED) \
|
| + V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSConstructCall, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(LazyCompile, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(LazyRecompile, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(NotifyOSR, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(LoadIC_Miss, BUILTIN, UNINITIALIZED) \
|
| - V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED) \
|
| - V(StoreIC_Miss, BUILTIN, UNINITIALIZED) \
|
| - V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED) \
|
| + V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED) \
|
| - V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC) \
|
| - V(LoadIC_Normal, LOAD_IC, MONOMORPHIC) \
|
| - V(LoadIC_ArrayLength, LOAD_IC, MONOMORPHIC) \
|
| - V(LoadIC_StringLength, LOAD_IC, MONOMORPHIC) \
|
| - V(LoadIC_StringWrapperLength, LOAD_IC, MONOMORPHIC) \
|
| - V(LoadIC_FunctionPrototype, LOAD_IC, MONOMORPHIC) \
|
| - V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC) \
|
| + V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_ArrayLength, LOAD_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_StringLength, LOAD_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_StringWrapperLength, LOAD_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_FunctionPrototype, LOAD_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED) \
|
| - V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC) \
|
| - V(KeyedLoadIC_Generic, KEYED_LOAD_IC, MEGAMORPHIC) \
|
| - V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC) \
|
| - V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MEGAMORPHIC) \
|
| + V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_Generic, KEYED_LOAD_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(StoreIC_Initialize, STORE_IC, UNINITIALIZED) \
|
| - V(StoreIC_ArrayLength, STORE_IC, MONOMORPHIC) \
|
| - V(StoreIC_Normal, STORE_IC, MONOMORPHIC) \
|
| - V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC) \
|
| - V(StoreIC_GlobalProxy, STORE_IC, MEGAMORPHIC) \
|
| + V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_ArrayLength, STORE_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_Normal, STORE_IC, MONOMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_GlobalProxy, STORE_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \
|
| + StoreIC::kStoreICStrict) \
|
| + V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \
|
| + StoreIC::kStoreICStrict) \
|
| + V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \
|
| + StoreIC::kStoreICStrict) \
|
| + V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
|
| + StoreIC::kStoreICStrict) \
|
| + V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \
|
| + StoreIC::kStoreICStrict) \
|
| \
|
| - V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED) \
|
| - V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC) \
|
| + V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| \
|
| /* Uses KeyedLoadIC_Initialize; must be after in list. */ \
|
| - V(FunctionCall, BUILTIN, UNINITIALIZED) \
|
| - V(FunctionApply, BUILTIN, UNINITIALIZED) \
|
| + V(FunctionCall, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(FunctionApply, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(ArrayCode, BUILTIN, UNINITIALIZED) \
|
| - V(ArrayConstructCode, BUILTIN, UNINITIALIZED) \
|
| + V(ArrayCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(StringConstructCode, BUILTIN, UNINITIALIZED) \
|
| + V(StringConstructCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| \
|
| - V(OnStackReplacement, BUILTIN, UNINITIALIZED)
|
| + V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState)
|
|
|
|
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| // Define list of builtins used by the debugger implemented in assembly.
|
| #define BUILTIN_LIST_DEBUG_A(V) \
|
| - V(Return_DebugBreak, BUILTIN, DEBUG_BREAK) \
|
| - V(ConstructCall_DebugBreak, BUILTIN, DEBUG_BREAK) \
|
| - V(StubNoRegisters_DebugBreak, BUILTIN, DEBUG_BREAK) \
|
| - V(LoadIC_DebugBreak, LOAD_IC, DEBUG_BREAK) \
|
| - V(KeyedLoadIC_DebugBreak, KEYED_LOAD_IC, DEBUG_BREAK) \
|
| - V(StoreIC_DebugBreak, STORE_IC, DEBUG_BREAK) \
|
| - V(KeyedStoreIC_DebugBreak, KEYED_STORE_IC, DEBUG_BREAK) \
|
| - V(Slot_DebugBreak, BUILTIN, DEBUG_BREAK) \
|
| - V(PlainReturn_LiveEdit, BUILTIN, DEBUG_BREAK) \
|
| - V(FrameDropper_LiveEdit, BUILTIN, DEBUG_BREAK)
|
| + V(Return_DebugBreak, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(ConstructCall_DebugBreak, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(StubNoRegisters_DebugBreak, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(LoadIC_DebugBreak, LOAD_IC, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_DebugBreak, KEYED_LOAD_IC, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_DebugBreak, STORE_IC, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_DebugBreak, KEYED_STORE_IC, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(Slot_DebugBreak, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(PlainReturn_LiveEdit, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState) \
|
| + V(FrameDropper_LiveEdit, BUILTIN, DEBUG_BREAK, \
|
| + Code::kNoExtraICState)
|
| #else
|
| #define BUILTIN_LIST_DEBUG_A(V)
|
| #endif
|
| @@ -186,7 +248,7 @@ class Builtins : public AllStatic {
|
|
|
| enum Name {
|
| #define DEF_ENUM_C(name, ignore) name,
|
| -#define DEF_ENUM_A(name, kind, state) name,
|
| +#define DEF_ENUM_A(name, kind, state, extra) name,
|
| BUILTIN_LIST_C(DEF_ENUM_C)
|
| BUILTIN_LIST_A(DEF_ENUM_A)
|
| BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
|
|
|