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..cacc95c3d9270e7eeed434b5fa297551a1ac97c4 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 dictionary = a5; |
+ DCHECK(!AreAliased( |
+ value, receiver, name, VectorStoreICDescriptor::VectorRegister(), |
+ VectorStoreICDescriptor::SlotRegister(), 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); |
} |