| Index: src/builtins.h
|
| diff --git a/src/builtins.h b/src/builtins.h
|
| index bc0facb44cc5fe6a918d27b80c540e9b61ce3a48..fc72592a491c471fa122fad0d97935d4d3154443 100644
|
| --- a/src/builtins.h
|
| +++ b/src/builtins.h
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2010 the V8 project authors. All rights reserved.
|
| +// Copyright 2011 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -67,115 +67,122 @@ enum BuiltinExtraArguments {
|
|
|
|
|
| // Define list of builtins implemented in assembly.
|
| -#define BUILTIN_LIST_A(V) \
|
| - 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, \
|
| - 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, \
|
| - 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, \
|
| - 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, \
|
| - 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, \
|
| - kStrictMode) \
|
| - V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \
|
| - kStrictMode) \
|
| - V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \
|
| - kStrictMode) \
|
| - V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
|
| - kStrictMode) \
|
| - V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \
|
| - kStrictMode) \
|
| - \
|
| - V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \
|
| - Code::kNoExtraICState) \
|
| - \
|
| - V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \
|
| - kStrictMode) \
|
| - V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \
|
| - kStrictMode) \
|
| - \
|
| - /* Uses KeyedLoadIC_Initialize; must be after in list. */ \
|
| - V(FunctionCall, BUILTIN, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - V(FunctionApply, BUILTIN, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - \
|
| - V(ArrayCode, BUILTIN, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - \
|
| - V(StringConstructCode, BUILTIN, UNINITIALIZED, \
|
| - Code::kNoExtraICState) \
|
| - \
|
| - V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
|
| +#define BUILTIN_LIST_A(V) \
|
| + 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, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedLoadIC_Slow, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_Slow, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + 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, \
|
| + 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, \
|
| + 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, \
|
| + kStrictMode) \
|
| + V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \
|
| + kStrictMode) \
|
| + V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \
|
| + kStrictMode) \
|
| + V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
|
| + kStrictMode) \
|
| + V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \
|
| + kStrictMode) \
|
| + \
|
| + V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \
|
| + Code::kNoExtraICState) \
|
| + \
|
| + V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \
|
| + kStrictMode) \
|
| + V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \
|
| + kStrictMode) \
|
| + \
|
| + /* Uses KeyedLoadIC_Initialize; must be after in list. */ \
|
| + V(FunctionCall, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(FunctionApply, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + \
|
| + V(ArrayCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + \
|
| + V(StringConstructCode, BUILTIN, UNINITIALIZED, \
|
| + Code::kNoExtraICState) \
|
| + \
|
| + V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
|
| Code::kNoExtraICState)
|
|
|
|
|
| @@ -207,36 +214,36 @@ enum BuiltinExtraArguments {
|
| #endif
|
|
|
| // Define list of builtins implemented in JavaScript.
|
| -#define BUILTINS_LIST_JS(V) \
|
| - V(EQUALS, 1) \
|
| - V(STRICT_EQUALS, 1) \
|
| - V(COMPARE, 2) \
|
| - V(ADD, 1) \
|
| - V(SUB, 1) \
|
| - V(MUL, 1) \
|
| - V(DIV, 1) \
|
| - V(MOD, 1) \
|
| - V(BIT_OR, 1) \
|
| - V(BIT_AND, 1) \
|
| - V(BIT_XOR, 1) \
|
| - V(UNARY_MINUS, 0) \
|
| - V(BIT_NOT, 0) \
|
| - V(SHL, 1) \
|
| - V(SAR, 1) \
|
| - V(SHR, 1) \
|
| - V(DELETE, 2) \
|
| - V(IN, 1) \
|
| - V(INSTANCE_OF, 1) \
|
| - V(GET_KEYS, 0) \
|
| - V(FILTER_KEY, 1) \
|
| - V(CALL_NON_FUNCTION, 0) \
|
| - V(CALL_NON_FUNCTION_AS_CONSTRUCTOR, 0) \
|
| - V(TO_OBJECT, 0) \
|
| - V(TO_NUMBER, 0) \
|
| - V(TO_STRING, 0) \
|
| - V(STRING_ADD_LEFT, 1) \
|
| - V(STRING_ADD_RIGHT, 1) \
|
| - V(APPLY_PREPARE, 1) \
|
| +#define BUILTINS_LIST_JS(V) \
|
| + V(EQUALS, 1) \
|
| + V(STRICT_EQUALS, 1) \
|
| + V(COMPARE, 2) \
|
| + V(ADD, 1) \
|
| + V(SUB, 1) \
|
| + V(MUL, 1) \
|
| + V(DIV, 1) \
|
| + V(MOD, 1) \
|
| + V(BIT_OR, 1) \
|
| + V(BIT_AND, 1) \
|
| + V(BIT_XOR, 1) \
|
| + V(UNARY_MINUS, 0) \
|
| + V(BIT_NOT, 0) \
|
| + V(SHL, 1) \
|
| + V(SAR, 1) \
|
| + V(SHR, 1) \
|
| + V(DELETE, 2) \
|
| + V(IN, 1) \
|
| + V(INSTANCE_OF, 1) \
|
| + V(GET_KEYS, 0) \
|
| + V(FILTER_KEY, 1) \
|
| + V(CALL_NON_FUNCTION, 0) \
|
| + V(CALL_NON_FUNCTION_AS_CONSTRUCTOR, 0) \
|
| + V(TO_OBJECT, 0) \
|
| + V(TO_NUMBER, 0) \
|
| + V(TO_STRING, 0) \
|
| + V(STRING_ADD_LEFT, 1) \
|
| + V(STRING_ADD_RIGHT, 1) \
|
| + V(APPLY_PREPARE, 1) \
|
| V(APPLY_OVERFLOW, 1)
|
|
|
|
|
|
|