Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(850)

Unified Diff: src/builtins.h

Issue 11428137: ARM: Make use of d16-d31 when available. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: . Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/builtins.h
diff --git a/src/builtins.h b/src/builtins.h
index a2f752e052fd881984e04b535cfb5a3077f57c3f..859edbc3f2084186e0bdcaaf136b527270e3a684 100644
--- a/src/builtins.h
+++ b/src/builtins.h
@@ -37,6 +37,18 @@ enum BuiltinExtraArguments {
NEEDS_CALLED_FUNCTION = 1
};
+// Specifies whether or not a builtin should be part of the snapshot.
+enum InSnapshot {
+ NOT_IN_SNAPSHOT = 0,
+ IN_SNAPSHOT = 1
+};
+
+#if defined(V8_TARGET_ARCH_ARM)
+#define NOT_IN_ARM_SNAPSHOT NOT_IN_SNAPSHOT
+#else
+#define NOT_IN_ARM_SNAPSHOT IN_SNAPSHOT
+#endif
+
#define CODE_AGE_LIST_WITH_ARG(V, A) \
V(Quadragenarian, A) \
@@ -50,11 +62,11 @@ enum BuiltinExtraArguments {
#define CODE_AGE_LIST(V) \
CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
-#define DECLARE_CODE_AGE_BUILTIN(C, V) \
- V(Make##C##CodeYoungAgainOddMarking, BUILTIN, \
- UNINITIALIZED, Code::kNoExtraICState) \
- V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, \
- UNINITIALIZED, Code::kNoExtraICState)
+#define DECLARE_CODE_AGE_BUILTIN(C, V) \
+ V(Make##C##CodeYoungAgainOddMarking, BUILTIN, \
+ UNINITIALIZED, Code::kNoExtraICState, IN_SNAPSHOT) \
+ V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, \
+ UNINITIALIZED, Code::kNoExtraICState, IN_SNAPSHOT)
// Define list of builtins implemented in C++.
@@ -84,166 +96,239 @@ enum BuiltinExtraArguments {
// Define list of builtins implemented in assembly.
#define BUILTIN_LIST_A(V) \
V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(InRecompileQueue, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LazyCompile, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LazyRecompile, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(ParallelRecompile, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(NotifyOSR, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_Slow, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_Slow, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_ArrayLength, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_StringLength, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_StringWrapperLength, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_FunctionPrototype, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_Generic, KEYED_LOAD_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_NonStrictArguments, KEYED_LOAD_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_ArrayLength, STORE_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_Normal, STORE_IC, MONOMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_GlobalProxy, STORE_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
\
V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \
- kStrictMode) \
+ kStrictMode, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_NonStrictArguments, KEYED_STORE_IC, MEGAMORPHIC, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(TransitionElementsSmiToDouble, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(TransitionElementsDoubleToObject, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
/* Uses KeyedLoadIC_Initialize; must be after in list. */ \
V(FunctionCall, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(FunctionApply, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(InternalArrayCode, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(ArrayCode, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(StringConstructCode, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
\
V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ NOT_IN_ARM_SNAPSHOT) \
CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)
#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, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(CallFunctionStub_DebugBreak, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(CallFunctionStub_Recording_DebugBreak, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(CallConstructStub_DebugBreak, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(CallConstructStub_Recording_DebugBreak, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(LoadIC_DebugBreak, LOAD_IC, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedLoadIC_DebugBreak, KEYED_LOAD_IC, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(StoreIC_DebugBreak, STORE_IC, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(KeyedStoreIC_DebugBreak, KEYED_STORE_IC, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(Slot_DebugBreak, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(PlainReturn_LiveEdit, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState) \
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT) \
V(FrameDropper_LiveEdit, BUILTIN, DEBUG_BREAK, \
- Code::kNoExtraICState)
+ Code::kNoExtraICState, \
+ IN_SNAPSHOT)
#else
#define BUILTIN_LIST_DEBUG_A(V)
#endif
@@ -291,9 +376,16 @@ class Builtins {
public:
~Builtins();
- // Generate all builtin code objects. Should be called once during
- // isolate initialization.
- void SetUp(bool create_heap_objects);
+ enum SetUpKind {
+ FOR_SNAPSHOT,
+ ALL,
+ BEFORE_DESERIALIZATION,
+ AFTER_DESERIALIZATION
+ };
+
+ // Generate builtin code object. Should be called during isolate
+ // initialization.
+ void SetUp(SetUpKind kind);
void TearDown();
// Garbage collection support.
@@ -304,7 +396,7 @@ class Builtins {
enum Name {
#define DEF_ENUM_C(name, ignore) k##name,
-#define DEF_ENUM_A(name, kind, state, extra) k##name,
+#define DEF_ENUM_A(name, kind, state, extra, extra2) k##name,
BUILTIN_LIST_C(DEF_ENUM_C)
BUILTIN_LIST_A(DEF_ENUM_A)
BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
@@ -328,7 +420,7 @@ class Builtins {
};
#define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name();
-#define DECLARE_BUILTIN_ACCESSOR_A(name, kind, state, extra) \
+#define DECLARE_BUILTIN_ACCESSOR_A(name, kind, state, extra, extra2) \
Handle<Code> name();
BUILTIN_LIST_C(DECLARE_BUILTIN_ACCESSOR_C)
BUILTIN_LIST_A(DECLARE_BUILTIN_ACCESSOR_A)
« no previous file with comments | « src/arm/simulator-arm.cc ('k') | src/builtins.cc » ('j') | src/flag-definitions.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698