Index: src/ic/mips64/stub-cache-mips64.cc |
diff --git a/src/ic/mips64/stub-cache-mips64.cc b/src/ic/mips64/stub-cache-mips64.cc |
index b1ec6407190080c52ae708f864040dd10fa51fab..4ab9f8e5b2ba3a3cb4dd65f8ec13e950e64b4f2e 100644 |
--- a/src/ic/mips64/stub-cache-mips64.cc |
+++ b/src/ic/mips64/stub-cache-mips64.cc |
@@ -119,8 +119,14 @@ void StubCache::GenerateProbe(MacroAssembler* masm, Code::Kind ic_kind, |
// extra3 don't conflict with the vector and slot registers, which need |
// to be preserved for a handler call or miss. |
if (IC::ICUseVector(ic_kind)) { |
- Register vector = LoadWithVectorDescriptor::VectorRegister(); |
- Register slot = LoadWithVectorDescriptor::SlotRegister(); |
+ Register vector, slot; |
+ if (ic_kind == Code::STORE_IC || ic_kind == Code::KEYED_STORE_IC) { |
+ vector = VectorStoreICDescriptor::VectorRegister(); |
+ slot = VectorStoreICDescriptor::SlotRegister(); |
+ } else { |
+ vector = LoadWithVectorDescriptor::VectorRegister(); |
+ slot = LoadWithVectorDescriptor::SlotRegister(); |
+ } |
DCHECK(!AreAliased(vector, slot, scratch, extra, extra2, extra3)); |
} |
#endif |