Index: src/x64/ic-x64.cc |
=================================================================== |
--- src/x64/ic-x64.cc (revision 9327) |
+++ src/x64/ic-x64.cc (working copy) |
@@ -221,7 +221,7 @@ |
// Update write barrier. Make sure not to clobber the value. |
__ movq(scratch0, value); |
- __ RecordWrite(elements, scratch1, scratch0); |
+ __ RecordWrite(elements, scratch1, scratch0, kDontSaveFPRegs); |
} |
@@ -701,7 +701,10 @@ |
// Slow case that needs to retain rcx for use by RecordWrite. |
// Update write barrier for the elements array address. |
__ movq(rdx, rax); |
- __ RecordWriteNonSmi(rbx, 0, rdx, rcx); |
+ __ lea(rcx, |
+ FieldOperand(rbx, rcx, times_pointer_size, FixedArray::kHeaderSize)); |
+ __ RecordWrite( |
+ rbx, rcx, rdx, kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK); |
__ ret(0); |
} |
@@ -1214,7 +1217,12 @@ |
__ movq(mapped_location, rax); |
__ lea(r9, mapped_location); |
__ movq(r8, rax); |
- __ RecordWrite(rbx, r9, r8); |
+ __ RecordWrite(rbx, |
+ r9, |
+ r8, |
+ kDontSaveFPRegs, |
+ EMIT_REMEMBERED_SET, |
+ INLINE_SMI_CHECK); |
__ Ret(); |
__ bind(¬in); |
// The unmapped lookup expects that the parameter map is in rbx. |
@@ -1223,7 +1231,12 @@ |
__ movq(unmapped_location, rax); |
__ lea(r9, unmapped_location); |
__ movq(r8, rax); |
- __ RecordWrite(rbx, r9, r8); |
+ __ RecordWrite(rbx, |
+ r9, |
+ r8, |
+ kDontSaveFPRegs, |
+ EMIT_REMEMBERED_SET, |
+ INLINE_SMI_CHECK); |
__ Ret(); |
__ bind(&slow); |
GenerateMiss(masm, false); |