Remove unused keyed store "force generic".
R=ishell@chromium.org Review URL: https://chromiumcodereview.appspot.com/73893003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
f27f2fa420
commit
a957c323d4
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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, \
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
25
src/ic.cc
25
src/ic.cc
@ -1949,20 +1949,6 @@ KeyedAccessStoreMode KeyedStoreIC::GetStoreMode(Handle<JSObject> receiver,
|
||||
}
|
||||
|
||||
|
||||
MaybeObject* KeyedStoreIC::StoreForceGeneric(Handle<Object> object,
|
||||
Handle<Object> key,
|
||||
Handle<Object> value) {
|
||||
set_target(*generic_stub());
|
||||
Handle<Object> result = Runtime::SetObjectProperty(isolate(), object,
|
||||
key,
|
||||
value,
|
||||
NONE,
|
||||
strict_mode());
|
||||
RETURN_IF_EMPTY_HANDLE(isolate(), result);
|
||||
return *result;
|
||||
}
|
||||
|
||||
|
||||
MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
|
||||
Handle<Object> key,
|
||||
Handle<Object> 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<Object> receiver = args.at<Object>(0);
|
||||
Handle<Object> key = args.at<Object>(1);
|
||||
ic.UpdateState(receiver, key);
|
||||
return ic.StoreForceGeneric(receiver, key, args.at<Object>(2));
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
|
12
src/ic.h
12
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> object,
|
||||
Handle<Object> name,
|
||||
Handle<Object> value);
|
||||
MUST_USE_RESULT MaybeObject* Store(Handle<Object> object,
|
||||
Handle<Object> name,
|
||||
Handle<Object> 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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user