| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index 48620b2625caed1a19761e0508ea576f468477e4..9badb0bd1c9270212bad2faa2291abd9c8a64187 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -4077,14 +4077,11 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| if (instr->hydrogen()->NeedsWriteBarrierForMap()) {
|
| Register temp = ToRegister(instr->temp());
|
| // Update the write barrier for the map field.
|
| - __ RecordWriteField(object,
|
| - HeapObject::kMapOffset,
|
| - scratch,
|
| - temp,
|
| - GetRAState(),
|
| - kSaveFPRegs,
|
| - OMIT_REMEMBERED_SET,
|
| - OMIT_SMI_CHECK);
|
| + __ RecordWriteForMap(object,
|
| + scratch,
|
| + temp,
|
| + GetRAState(),
|
| + kSaveFPRegs);
|
| }
|
| }
|
|
|
| @@ -4102,7 +4099,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| GetRAState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - instr->hydrogen()->SmiCheckForWriteBarrier());
|
| + instr->hydrogen()->SmiCheckForWriteBarrier(),
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| } else {
|
| __ lw(scratch, FieldMemOperand(object, JSObject::kPropertiesOffset));
|
| @@ -4118,7 +4116,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| GetRAState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - instr->hydrogen()->SmiCheckForWriteBarrier());
|
| + instr->hydrogen()->SmiCheckForWriteBarrier(),
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| }
|
| }
|
| @@ -4338,7 +4337,8 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) {
|
| GetRAState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - check_needed);
|
| + check_needed,
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| }
|
|
|
| @@ -4386,8 +4386,11 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) {
|
| __ li(new_map_reg, Operand(to_map));
|
| __ sw(new_map_reg, FieldMemOperand(object_reg, HeapObject::kMapOffset));
|
| // Write barrier.
|
| - __ RecordWriteField(object_reg, HeapObject::kMapOffset, new_map_reg,
|
| - scratch, GetRAState(), kDontSaveFPRegs);
|
| + __ RecordWriteForMap(object_reg,
|
| + new_map_reg,
|
| + scratch,
|
| + GetRAState(),
|
| + kDontSaveFPRegs);
|
| } else {
|
| ASSERT(object_reg.is(a0));
|
| ASSERT(ToRegister(instr->context()).is(cp));
|
|
|