| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 012a188c9b2636c496c85958f8c82490ed700b58..5339bca444f83e2d08da5ec508f65b0825db5db9 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -2426,34 +2426,6 @@ RUNTIME_FUNCTION(Runtime_StoreIC_Miss) {
|
| }
|
|
|
|
|
| -RUNTIME_FUNCTION(Runtime_StoreIC_MissFromStubFailure) {
|
| - TimerEventScope<TimerEventIcMiss> timer(isolate);
|
| - HandleScope scope(isolate);
|
| - typedef StoreWithVectorDescriptor Descriptor;
|
| - DCHECK_EQ(Descriptor::kParameterCount, args.length());
|
| - Handle<Object> receiver = args.at<Object>(Descriptor::kReceiver);
|
| - Handle<Name> key = args.at<Name>(Descriptor::kName);
|
| - Handle<Object> value = args.at<Object>(Descriptor::kValue);
|
| - Handle<Smi> slot = args.at<Smi>(Descriptor::kSlot);
|
| - Handle<TypeFeedbackVector> vector =
|
| - args.at<TypeFeedbackVector>(Descriptor::kVector);
|
| -
|
| - FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
|
| - if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::STORE_IC) {
|
| - StoreICNexus nexus(vector, vector_slot);
|
| - StoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| - ic.UpdateState(receiver, key);
|
| - RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
|
| - } else {
|
| - DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
|
| - vector->GetKind(vector_slot));
|
| - KeyedStoreICNexus nexus(vector, vector_slot);
|
| - KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| - ic.UpdateState(receiver, key);
|
| - RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
|
| - }
|
| -}
|
| -
|
| // Used from ic-<arch>.cc.
|
| RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Miss) {
|
| TimerEventScope<TimerEventIcMiss> timer(isolate);
|
| @@ -2473,25 +2445,6 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Miss) {
|
| }
|
|
|
|
|
| -RUNTIME_FUNCTION(Runtime_KeyedStoreIC_MissFromStubFailure) {
|
| - TimerEventScope<TimerEventIcMiss> timer(isolate);
|
| - HandleScope scope(isolate);
|
| - typedef StoreWithVectorDescriptor Descriptor;
|
| - DCHECK_EQ(Descriptor::kParameterCount, args.length());
|
| - Handle<Object> receiver = args.at<Object>(Descriptor::kReceiver);
|
| - Handle<Object> key = args.at<Object>(Descriptor::kName);
|
| - Handle<Object> value = args.at<Object>(Descriptor::kValue);
|
| - Handle<Smi> slot = args.at<Smi>(Descriptor::kSlot);
|
| - Handle<TypeFeedbackVector> vector =
|
| - args.at<TypeFeedbackVector>(Descriptor::kVector);
|
| - FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
|
| - KeyedStoreICNexus nexus(vector, vector_slot);
|
| - KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| - ic.UpdateState(receiver, key);
|
| - RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
|
| -}
|
| -
|
| -
|
| RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Slow) {
|
| HandleScope scope(isolate);
|
| DCHECK_EQ(5, args.length());
|
| @@ -2959,35 +2912,5 @@ RUNTIME_FUNCTION(Runtime_LoadElementWithInterceptor) {
|
|
|
| return *result;
|
| }
|
| -
|
| -
|
| -RUNTIME_FUNCTION(Runtime_LoadIC_MissFromStubFailure) {
|
| - TimerEventScope<TimerEventIcMiss> timer(isolate);
|
| - HandleScope scope(isolate);
|
| - DCHECK_EQ(4, args.length());
|
| - typedef LoadWithVectorDescriptor Descriptor;
|
| - Handle<Object> receiver = args.at<Object>(Descriptor::kReceiver);
|
| - Handle<Name> key = args.at<Name>(Descriptor::kName);
|
| - Handle<Smi> slot = args.at<Smi>(Descriptor::kSlot);
|
| - Handle<TypeFeedbackVector> vector =
|
| - args.at<TypeFeedbackVector>(Descriptor::kVector);
|
| - FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
|
| - // A monomorphic or polymorphic KeyedLoadIC with a string key can call the
|
| - // LoadIC miss handler if the handler misses. Since the vector Nexus is
|
| - // set up outside the IC, handle that here.
|
| - if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::LOAD_IC) {
|
| - LoadICNexus nexus(vector, vector_slot);
|
| - LoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| - ic.UpdateState(receiver, key);
|
| - RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
|
| - } else {
|
| - DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
|
| - vector->GetKind(vector_slot));
|
| - KeyedLoadICNexus nexus(vector, vector_slot);
|
| - KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| - ic.UpdateState(receiver, key);
|
| - RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
|
| - }
|
| -}
|
| } // namespace internal
|
| } // namespace v8
|
|
|