diff --git a/src/arm/ic-arm.cc b/src/arm/ic-arm.cc index a3b2a6e2a1..23f34d4ae1 100644 --- a/src/arm/ic-arm.cc +++ b/src/arm/ic-arm.cc @@ -856,7 +856,7 @@ void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) { __ RecordWrite(r3, r6, r9, kLRHasNotBeenSaved, kDontSaveFPRegs); __ Ret(); __ bind(&slow); - GenerateMiss(masm, MISS); + GenerateMiss(masm); } @@ -1164,7 +1164,7 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) { } -void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { +void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { // ---------- S t a t e -------------- // -- r0 : value // -- r1 : key @@ -1175,10 +1175,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { // Push receiver, key and value for runtime call. __ Push(r2, r1, r0); - ExternalReference ref = miss_mode == MISS_FORCE_GENERIC - ? ExternalReference(IC_Utility(kKeyedStoreIC_MissForceGeneric), - masm->isolate()) - : ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); + ExternalReference ref = + ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); __ TailCallExternalReference(ref, 3, 1); } diff --git a/src/builtins.cc b/src/builtins.cc index 4077272426..2b4a08ddbf 100644 --- a/src/builtins.cc +++ b/src/builtins.cc @@ -1476,12 +1476,7 @@ static void Generate_KeyedStoreIC_Generic_Strict(MacroAssembler* masm) { static void Generate_KeyedStoreIC_Miss(MacroAssembler* masm) { - KeyedStoreIC::GenerateMiss(masm, MISS); -} - - -static void Generate_KeyedStoreIC_MissForceGeneric(MacroAssembler* masm) { - KeyedStoreIC::GenerateMiss(masm, MISS_FORCE_GENERIC); + KeyedStoreIC::GenerateMiss(masm); } diff --git a/src/builtins.h b/src/builtins.h index 4f85c3861b..667ad6ad34 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -125,8 +125,6 @@ enum BuiltinExtraArguments { Code::kNoExtraICState) \ V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \ Code::kNoExtraICState) \ - V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \ - Code::kNoExtraICState) \ V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \ Code::kNoExtraICState) \ V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \ diff --git a/src/ia32/ic-ia32.cc b/src/ia32/ic-ia32.cc index dab9dd7a44..6ee82b5e31 100644 --- a/src/ia32/ic-ia32.cc +++ b/src/ia32/ic-ia32.cc @@ -707,7 +707,7 @@ void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) { __ RecordWrite(ebx, edi, edx, kDontSaveFPRegs); __ Ret(); __ bind(&slow); - GenerateMiss(masm, MISS); + GenerateMiss(masm); } @@ -1551,7 +1551,7 @@ void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm, } -void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { +void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : key @@ -1566,10 +1566,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { __ push(ebx); // Do tail-call to runtime routine. - ExternalReference ref = miss_mode == MISS_FORCE_GENERIC - ? ExternalReference(IC_Utility(kKeyedStoreIC_MissForceGeneric), - masm->isolate()) - : ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); + ExternalReference ref = + ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); __ TailCallExternalReference(ref, 3, 1); } diff --git a/src/ic.cc b/src/ic.cc index 2f7db26f28..c95a42319f 100644 --- a/src/ic.cc +++ b/src/ic.cc @@ -1949,20 +1949,6 @@ KeyedAccessStoreMode KeyedStoreIC::GetStoreMode(Handle receiver, } -MaybeObject* KeyedStoreIC::StoreForceGeneric(Handle object, - Handle key, - Handle value) { - set_target(*generic_stub()); - Handle result = Runtime::SetObjectProperty(isolate(), object, - key, - value, - NONE, - strict_mode()); - RETURN_IF_EMPTY_HANDLE(isolate(), result); - return *result; -} - - MaybeObject* KeyedStoreIC::Store(Handle object, Handle key, Handle value) { @@ -2320,17 +2306,6 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_Slow) { } -RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_MissForceGeneric) { - HandleScope scope(isolate); - ASSERT(args.length() == 3); - KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate); - Handle receiver = args.at(0); - Handle key = args.at(1); - ic.UpdateState(receiver, key); - return ic.StoreForceGeneric(receiver, key, args.at(2)); -} - - RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) { HandleScope scope(isolate); ASSERT(args.length() == 4); diff --git a/src/ic.h b/src/ic.h index cc63767d21..98d22044a9 100644 --- a/src/ic.h +++ b/src/ic.h @@ -48,7 +48,6 @@ namespace internal { ICU(StoreIC_Slow) \ ICU(SharedStoreIC_ExtendStorage) \ ICU(KeyedStoreIC_Miss) \ - ICU(KeyedStoreIC_MissForceGeneric) \ ICU(KeyedStoreIC_Slow) \ /* Utilities for IC stubs. */ \ ICU(StoreCallbackProperty) \ @@ -687,21 +686,16 @@ class KeyedStoreIC: public StoreIC { ASSERT(target()->is_keyed_store_stub()); } - MUST_USE_RESULT MaybeObject* StoreForceGeneric(Handle object, - Handle name, - Handle value); MUST_USE_RESULT MaybeObject* Store(Handle object, Handle name, Handle value); // Code generators for stub routines. Only called once at startup. - static void GenerateInitialize(MacroAssembler* masm) { - GenerateMiss(masm, MISS); - } + static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); } static void GeneratePreMonomorphic(MacroAssembler* masm) { - GenerateMiss(masm, MISS); + GenerateMiss(masm); } - static void GenerateMiss(MacroAssembler* masm, ICMissMode force_generic); + static void GenerateMiss(MacroAssembler* masm); static void GenerateSlow(MacroAssembler* masm); static void GenerateRuntimeSetProperty(MacroAssembler* masm, StrictModeFlag strict_mode); diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc index c7e1a2ada6..0cbd0eae7c 100644 --- a/src/mips/ic-mips.cc +++ b/src/mips/ic-mips.cc @@ -861,7 +861,7 @@ void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) { __ Ret(USE_DELAY_SLOT); __ mov(v0, a0); // (In delay slot) return the value stored in v0. __ bind(&slow); - GenerateMiss(masm, MISS); + GenerateMiss(masm); } @@ -1457,7 +1457,7 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) { } -void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { +void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { // ---------- S t a t e -------------- // -- a0 : value // -- a1 : key @@ -1468,10 +1468,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { // Push receiver, key and value for runtime call. __ Push(a2, a1, a0); - ExternalReference ref = miss_mode == MISS_FORCE_GENERIC - ? ExternalReference(IC_Utility(kKeyedStoreIC_MissForceGeneric), - masm->isolate()) - : ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); + ExternalReference ref = + ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); __ TailCallExternalReference(ref, 3, 1); } diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc index fe8734caf4..0111206696 100644 --- a/src/x64/ic-x64.cc +++ b/src/x64/ic-x64.cc @@ -1310,7 +1310,7 @@ void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) { INLINE_SMI_CHECK); __ Ret(); __ bind(&slow); - GenerateMiss(masm, MISS); + GenerateMiss(masm); } @@ -1612,7 +1612,7 @@ void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) { } -void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { +void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { // ----------- S t a t e ------------- // -- rax : value // -- rcx : key @@ -1627,10 +1627,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { __ PushReturnAddressFrom(rbx); // Do tail-call to runtime routine. - ExternalReference ref = miss_mode == MISS_FORCE_GENERIC - ? ExternalReference(IC_Utility(kKeyedStoreIC_MissForceGeneric), - masm->isolate()) - : ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); + ExternalReference ref = + ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate()); __ TailCallExternalReference(ref, 3, 1); }