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