Index: src/ic/mips/handler-compiler-mips.cc |
diff --git a/src/ic/mips/handler-compiler-mips.cc b/src/ic/mips/handler-compiler-mips.cc |
index 5b4555fa84907414ba23654407b0b5d25fa49dd3..0abbed99dff941356b5aab6a8497ee91eeeca38d 100644 |
--- a/src/ic/mips/handler-compiler-mips.cc |
+++ b/src/ic/mips/handler-compiler-mips.cc |
@@ -391,14 +391,14 @@ void NamedStoreHandlerCompiler::GenerateStoreTransition( |
if (details.type() == FIELD && |
Map::cast(transition->GetBackPointer())->unused_property_fields() == 0) { |
// The properties must be extended before we can store the value. |
- // We jump to a runtime call that extends the properties array. |
- __ push(receiver_reg); |
- __ li(a2, Operand(transition)); |
- __ Push(a2, a0); |
- __ TailCallExternalReference( |
- ExternalReference(IC_Utility(IC::kSharedStoreIC_ExtendStorage), |
- isolate()), |
- 3, 1); |
+ __ mov(ExtendStorageDescriptor::NameRegister(), Operand(name)); |
+ __ mov(ExtendStorageDescriptor::MapRegister(), Operand(transition)); |
+ |
+ |
+ ExtendStorageStub stub(isolate(), |
+ FieldIndex::ForDescriptor(*transition, descriptor), |
+ representation); |
+ GenerateTailCall(masm(), stub.GetCode()); |
return; |
} |