Index: src/compiler/ia32/code-generator-ia32.cc |
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc |
index 9de0ba26c6df99ac8f95b247f92a3eed6d585dc5..1f61af8abf9c14f56ff27a7eb4dae6bcd8b40f6a 100644 |
--- a/src/compiler/ia32/code-generator-ia32.cc |
+++ b/src/compiler/ia32/code-generator-ia32.cc |
@@ -245,10 +245,13 @@ class OutOfLineRecordWrite final : public OutOfLineCode { |
__ CheckPageFlag(value_, scratch0_, |
MemoryChunk::kPointersToHereAreInterestingMask, zero, |
exit()); |
+ RememberedSetAction const remembered_set_action = |
+ mode_ > RecordWriteMode::kValueIsMap ? EMIT_REMEMBERED_SET |
+ : OMIT_REMEMBERED_SET; |
SaveFPRegsMode const save_fp_mode = |
frame()->DidAllocateDoubleRegisters() ? kSaveFPRegs : kDontSaveFPRegs; |
RecordWriteStub stub(isolate(), object_, scratch0_, scratch1_, |
- EMIT_REMEMBERED_SET, save_fp_mode); |
+ remembered_set_action, save_fp_mode); |
__ lea(scratch1_, operand_); |
__ CallStub(&stub); |
} |