Index: src/builtins.h |
diff --git a/src/builtins.h b/src/builtins.h |
index 8a55eaa453a3464ff89edcf81d6c7319fa9b845f..aff47f259366291534af191a01063c2caeeb0f29 100644 |
--- a/src/builtins.h |
+++ b/src/builtins.h |
@@ -68,74 +68,75 @@ enum BuiltinExtraArguments { |
V(RestrictedStrictArgumentsPropertiesThrower, NO_EXTRA_ARGUMENTS) |
// Define list of builtins implemented in assembly. |
-#define BUILTIN_LIST_A(V) \ |
- V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(CallFunction, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(Call, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(PushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(InOptimizationQueue, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(JSConstructStubForDerived, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(JSConstructStubApi, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(InterpreterExitTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(CompileLazy, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(StoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, kNoExtraICState) \ |
- V(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, MEGAMORPHIC, kNoExtraICState) \ |
- \ |
- V(KeyedLoadIC_Megamorphic_Strong, KEYED_LOAD_IC, MEGAMORPHIC, \ |
- LoadICState::kStrongModeState) \ |
- \ |
- V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC, \ |
- StoreICState::kStrictModeState) \ |
- \ |
- V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, kNoExtraICState) \ |
- V(KeyedStoreIC_PreMonomorphic, KEYED_STORE_IC, PREMONOMORPHIC, \ |
- kNoExtraICState) \ |
- V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, MEGAMORPHIC, kNoExtraICState) \ |
- \ |
- V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \ |
- StoreICState::kStrictModeState) \ |
- V(KeyedStoreIC_PreMonomorphic_Strict, KEYED_STORE_IC, PREMONOMORPHIC, \ |
- StoreICState::kStrictModeState) \ |
- V(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \ |
- StoreICState::kStrictModeState) \ |
- \ |
- V(FunctionCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(FunctionApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(ReflectApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(ReflectConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(InternalArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(ArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(StringConstructCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(OsrAfterStackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- \ |
- V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
- V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+#define BUILTIN_LIST_A(V) \ |
+ V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(CallFunction, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(Call, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(PushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(InOptimizationQueue, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(JSConstructStubForDerived, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(JSConstructStubApi, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(InterpreterExitTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(CompileLazy, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(StoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, kNoExtraICState) \ |
+ V(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, MEGAMORPHIC, kNoExtraICState) \ |
+ \ |
+ V(KeyedLoadIC_Megamorphic_Strong, KEYED_LOAD_IC, MEGAMORPHIC, \ |
+ LoadICState::kStrongModeState) \ |
+ \ |
+ V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC, \ |
+ StoreICState::kStrictModeState) \ |
+ \ |
+ V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, kNoExtraICState) \ |
+ V(KeyedStoreIC_PreMonomorphic, KEYED_STORE_IC, PREMONOMORPHIC, \ |
+ kNoExtraICState) \ |
+ V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, MEGAMORPHIC, kNoExtraICState) \ |
+ \ |
+ V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \ |
+ StoreICState::kStrictModeState) \ |
+ V(KeyedStoreIC_PreMonomorphic_Strict, KEYED_STORE_IC, PREMONOMORPHIC, \ |
+ StoreICState::kStrictModeState) \ |
+ V(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \ |
+ StoreICState::kStrictModeState) \ |
+ \ |
+ V(FunctionCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(FunctionApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(ReflectApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(ReflectConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(InternalArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(ArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(StringConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(StringConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(OsrAfterStackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ \ |
+ V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
+ V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V) |
// Define list of builtin handlers implemented in assembly. |
@@ -282,7 +283,8 @@ class Builtins { |
static void Generate_InternalArrayCode(MacroAssembler* masm); |
static void Generate_ArrayCode(MacroAssembler* masm); |
- static void Generate_StringConstructCode(MacroAssembler* masm); |
+ static void Generate_StringConstructor(MacroAssembler* masm); |
+ static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm); |
static void Generate_OnStackReplacement(MacroAssembler* masm); |
static void Generate_OsrAfterStackCheck(MacroAssembler* masm); |
static void Generate_InterruptCheck(MacroAssembler* masm); |