Index: src/mips64/code-stubs-mips64.cc |
diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc |
index 0f83a613c162fb93c71d0dee56b2dcbd051a6dd6..ee528dd86930b600807bd998395b5c8444539b9b 100644 |
--- a/src/mips64/code-stubs-mips64.cc |
+++ b/src/mips64/code-stubs-mips64.cc |
@@ -1468,6 +1468,13 @@ void InstanceofStub::Generate(MacroAssembler* masm) { |
// Get the map location in scratch and patch it. |
__ GetRelocatedValue(inline_site, scratch, v1); // v1 used as scratch. |
__ sd(map, FieldMemOperand(scratch, Cell::kValueOffset)); |
+ |
+ __ mov(t0, map); |
+ // Scratch points at the cell payload. Calculate the start of the object. |
+ __ Dsubu(scratch, scratch, Operand(Cell::kValueOffset - 1)); |
+ __ RecordWriteField(scratch, Cell::kValueOffset, t0, function, |
+ kRAHasNotBeenSaved, kDontSaveFPRegs, |
+ OMIT_REMEMBERED_SET, OMIT_SMI_CHECK); |
} |
// Register mapping: a3 is object map and a4 is function prototype. |