| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 606bdd22e7bfa800c97000a03110debc280917d4..40747c868c36751f0b76c105bbf0c2abf972683b 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -4084,14 +4084,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,
|
| - GetLinkRegisterState(),
|
| - kSaveFPRegs,
|
| - OMIT_REMEMBERED_SET,
|
| - OMIT_SMI_CHECK);
|
| + __ RecordWriteForMap(object,
|
| + scratch,
|
| + temp,
|
| + GetLinkRegisterState(),
|
| + kSaveFPRegs);
|
| }
|
| }
|
|
|
| @@ -4109,7 +4106,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| GetLinkRegisterState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - instr->hydrogen()->SmiCheckForWriteBarrier());
|
| + instr->hydrogen()->SmiCheckForWriteBarrier(),
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| } else {
|
| __ ldr(scratch, FieldMemOperand(object, JSObject::kPropertiesOffset));
|
| @@ -4125,7 +4123,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| GetLinkRegisterState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - instr->hydrogen()->SmiCheckForWriteBarrier());
|
| + instr->hydrogen()->SmiCheckForWriteBarrier(),
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| }
|
| }
|
| @@ -4335,7 +4334,8 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) {
|
| GetLinkRegisterState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - check_needed);
|
| + check_needed,
|
| + instr->hydrogen()->PointersToHereCheckForValue());
|
| }
|
| }
|
|
|
| @@ -4384,8 +4384,11 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) {
|
| __ mov(new_map_reg, Operand(to_map));
|
| __ str(new_map_reg, FieldMemOperand(object_reg, HeapObject::kMapOffset));
|
| // Write barrier.
|
| - __ RecordWriteField(object_reg, HeapObject::kMapOffset, new_map_reg,
|
| - scratch, GetLinkRegisterState(), kDontSaveFPRegs);
|
| + __ RecordWriteForMap(object_reg,
|
| + new_map_reg,
|
| + scratch,
|
| + GetLinkRegisterState(),
|
| + kDontSaveFPRegs);
|
| } else {
|
| ASSERT(ToRegister(instr->context()).is(cp));
|
| ASSERT(object_reg.is(r0));
|
|
|