| Index: src/mips/ic-mips.cc
|
| diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc
|
| index 1eef55af1be65f88ed843db9c8aff35ca8d11ffe..8e78488fd121a2008c90c13249165efdc0b17bdc 100644
|
| --- a/src/mips/ic-mips.cc
|
| +++ b/src/mips/ic-mips.cc
|
| @@ -868,22 +868,26 @@ void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) {
|
| // -- lr : return address
|
| // -----------------------------------
|
| Label slow, notin;
|
| + // Store address is returned in register (of MemOperand) mapped_location.
|
| MemOperand mapped_location =
|
| GenerateMappedArgumentsLookup(masm, a2, a1, a3, t0, t1, ¬in, &slow);
|
| __ sw(a0, mapped_location);
|
| - __ Addu(t2, a3, t1);
|
| __ mov(t5, a0);
|
| - __ RecordWrite(a3, t2, t5, kRAHasNotBeenSaved, kDontSaveFPRegs);
|
| + ASSERT_EQ(mapped_location.offset(), 0);
|
| + __ RecordWrite(a3, mapped_location.rm(), t5,
|
| + kRAHasNotBeenSaved, kDontSaveFPRegs);
|
| __ Ret(USE_DELAY_SLOT);
|
| __ mov(v0, a0); // (In delay slot) return the value stored in v0.
|
| __ bind(¬in);
|
| // The unmapped lookup expects that the parameter map is in a3.
|
| + // Store address is returned in register (of MemOperand) unmapped_location.
|
| MemOperand unmapped_location =
|
| GenerateUnmappedArgumentsLookup(masm, a1, a3, t0, &slow);
|
| __ sw(a0, unmapped_location);
|
| - __ Addu(t2, a3, t0);
|
| __ mov(t5, a0);
|
| - __ RecordWrite(a3, t2, t5, kRAHasNotBeenSaved, kDontSaveFPRegs);
|
| + ASSERT_EQ(unmapped_location.offset(), 0);
|
| + __ RecordWrite(a3, unmapped_location.rm(), t5,
|
| + kRAHasNotBeenSaved, kDontSaveFPRegs);
|
| __ Ret(USE_DELAY_SLOT);
|
| __ mov(v0, a0); // (In delay slot) return the value stored in v0.
|
| __ bind(&slow);
|
|
|