| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index b342bf44b63c73570b60f929f5018f710c1303c6..59498b89ea7cfe33bc9e089fc7610c81a8a43c81 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()->ValueIsInNewSpace());
|
| }
|
| } 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()->ValueIsInNewSpace());
|
| }
|
| }
|
| }
|
| @@ -4335,7 +4334,8 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) {
|
| GetLinkRegisterState(),
|
| kSaveFPRegs,
|
| EMIT_REMEMBERED_SET,
|
| - check_needed);
|
| + check_needed,
|
| + instr->hydrogen()->ValueIsInNewSpace());
|
| }
|
| }
|
|
|
| @@ -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));
|
|
|