Index: src/arm64/lithium-codegen-arm64.cc |
diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc |
index ea63bae4b15ef987efd65e833e3f52fecdf6ea9c..9eb7f362ac4e84b005fa096cfa490a01e6bbf1ea 100644 |
--- a/src/arm64/lithium-codegen-arm64.cc |
+++ b/src/arm64/lithium-codegen-arm64.cc |
@@ -5320,7 +5320,8 @@ void LCodeGen::DoStoreKeyedFixed(LStoreKeyedFixed* instr) { |
// Compute address of modified element and store it into key register. |
__ Add(element_addr, mem_op.base(), mem_op.OffsetAsOperand()); |
__ RecordWrite(elements, element_addr, value, GetLinkRegisterState(), |
- kSaveFPRegs, EMIT_REMEMBERED_SET, check_needed); |
+ kSaveFPRegs, EMIT_REMEMBERED_SET, check_needed, |
+ instr->hydrogen()->PointersToHereCheckForValue()); |
} |
} |
@@ -5379,14 +5380,11 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
__ Str(new_map_value, FieldMemOperand(object, HeapObject::kMapOffset)); |
if (instr->hydrogen()->NeedsWriteBarrierForMap()) { |
// Update the write barrier for the map field. |
- __ RecordWriteField(object, |
- HeapObject::kMapOffset, |
- new_map_value, |
- ToRegister(instr->temp1()), |
- GetLinkRegisterState(), |
- kSaveFPRegs, |
- OMIT_REMEMBERED_SET, |
- OMIT_SMI_CHECK); |
+ __ RecordWriteForMap(object, |
+ new_map_value, |
+ ToRegister(instr->temp1()), |
+ GetLinkRegisterState(), |
+ kSaveFPRegs); |
} |
} |
@@ -5428,7 +5426,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
GetLinkRegisterState(), |
kSaveFPRegs, |
EMIT_REMEMBERED_SET, |
- instr->hydrogen()->SmiCheckForWriteBarrier()); |
+ instr->hydrogen()->SmiCheckForWriteBarrier(), |
+ instr->hydrogen()->PointersToHereCheckForValue()); |
} |
} |
@@ -5760,8 +5759,8 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) { |
__ Mov(new_map, Operand(to_map)); |
__ Str(new_map, FieldMemOperand(object, HeapObject::kMapOffset)); |
// Write barrier. |
- __ RecordWriteField(object, HeapObject::kMapOffset, new_map, temp1, |
- GetLinkRegisterState(), kDontSaveFPRegs); |
+ __ RecordWriteForMap(object, new_map, temp1, GetLinkRegisterState(), |
+ kDontSaveFPRegs); |
} else { |
{ |
UseScratchRegisterScope temps(masm()); |