| Index: src/ic/mips64/ic-mips64.cc
|
| diff --git a/src/ic/mips64/ic-mips64.cc b/src/ic/mips64/ic-mips64.cc
|
| index 6f3916dd2ea6346319984df976f64a669f040ed8..9d268d2f7f2a62c2b997529cfda90c9538d32194 100644
|
| --- a/src/ic/mips64/ic-mips64.cc
|
| +++ b/src/ic/mips64/ic-mips64.cc
|
| @@ -677,9 +677,10 @@ void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm,
|
| if (FLAG_vector_stores) {
|
| // The handlers in the stub cache expect a vector and slot. Since we won't
|
| // change the IC from any downstream misses, a dummy vector can be used.
|
| - Register vector = LoadWithVectorDescriptor::VectorRegister();
|
| - Register slot = LoadWithVectorDescriptor::SlotRegister();
|
| - DCHECK(!AreAliased(vector, slot, a3, a4, a5, a6));
|
| + Register vector = VectorStoreICDescriptor::VectorRegister();
|
| + Register slot = VectorStoreICDescriptor::SlotRegister();
|
| +
|
| + DCHECK(!AreAliased(vector, slot, a5, a6, a7, t0));
|
| Handle<TypeFeedbackVector> dummy_vector =
|
| TypeFeedbackVector::DummyVector(masm->isolate());
|
| int slot_index = dummy_vector->GetIndex(
|
| @@ -691,7 +692,7 @@ void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm,
|
| Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
|
| Code::ComputeHandlerFlags(Code::STORE_IC));
|
| masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
|
| - receiver, key, a3, a4, a5, a6);
|
| + receiver, key, a5, a6, a7, t0);
|
| // Cache miss.
|
| __ Branch(&miss);
|
|
|
| @@ -792,18 +793,20 @@ void StoreIC::GenerateNormal(MacroAssembler* masm) {
|
| Register receiver = StoreDescriptor::ReceiverRegister();
|
| Register name = StoreDescriptor::NameRegister();
|
| Register value = StoreDescriptor::ValueRegister();
|
| - Register dictionary = a3;
|
| - DCHECK(!AreAliased(value, receiver, name, dictionary, a4, a5));
|
| + Register vector = VectorStoreICDescriptor::VectorRegister();
|
| + Register slot = VectorStoreICDescriptor::SlotRegister();
|
| + Register dictionary = a5;
|
| + DCHECK(!AreAliased(value, receiver, name, vector, slot, dictionary, a6, a7));
|
|
|
| __ ld(dictionary, FieldMemOperand(receiver, JSObject::kPropertiesOffset));
|
|
|
| - GenerateDictionaryStore(masm, &miss, a3, name, value, a4, a5);
|
| + GenerateDictionaryStore(masm, &miss, dictionary, name, value, a6, a7);
|
| Counters* counters = masm->isolate()->counters();
|
| - __ IncrementCounter(counters->store_normal_hit(), 1, a4, a5);
|
| + __ IncrementCounter(counters->store_normal_hit(), 1, a6, a7);
|
| __ Ret();
|
|
|
| __ bind(&miss);
|
| - __ IncrementCounter(counters->store_normal_miss(), 1, a4, a5);
|
| + __ IncrementCounter(counters->store_normal_miss(), 1, a6, a7);
|
| GenerateMiss(masm);
|
| }
|
|
|
|
|