Index: src/mips/macro-assembler-mips.h |
diff --git a/src/mips/macro-assembler-mips.h b/src/mips/macro-assembler-mips.h |
index 9a68e8d70106b6a18a6bb5ec0643d15d0a2b1d8f..d339a3f7a2d84e451c6098de8b359dad9f0c1890 100644 |
--- a/src/mips/macro-assembler-mips.h |
+++ b/src/mips/macro-assembler-mips.h |
@@ -71,6 +71,10 @@ enum LiFlags { |
enum RememberedSetAction { EMIT_REMEMBERED_SET, OMIT_REMEMBERED_SET }; |
enum SmiCheck { INLINE_SMI_CHECK, OMIT_SMI_CHECK }; |
+enum PointersToHereCheck { |
+ kPointersToHereMaybeInteresting, |
+ kPointersToHereAreAlwaysInteresting |
+}; |
enum RAStatus { kRAHasNotBeenSaved, kRAHasBeenSaved }; |
Register GetRegisterThatIsNotOneOf(Register reg1, |
@@ -365,7 +369,9 @@ class MacroAssembler: public Assembler { |
RAStatus ra_status, |
SaveFPRegsMode save_fp, |
RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, |
- SmiCheck smi_check = INLINE_SMI_CHECK); |
+ SmiCheck smi_check = INLINE_SMI_CHECK, |
+ PointersToHereCheck pointers_to_here_check_for_value = |
+ kPointersToHereMaybeInteresting); |
// As above, but the offset has the tag presubtracted. For use with |
// MemOperand(reg, off). |
@@ -377,7 +383,9 @@ class MacroAssembler: public Assembler { |
RAStatus ra_status, |
SaveFPRegsMode save_fp, |
RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, |
- SmiCheck smi_check = INLINE_SMI_CHECK) { |
+ SmiCheck smi_check = INLINE_SMI_CHECK, |
+ PointersToHereCheck pointers_to_here_check_for_value = |
+ kPointersToHereMaybeInteresting) { |
RecordWriteField(context, |
offset + kHeapObjectTag, |
value, |
@@ -385,9 +393,17 @@ class MacroAssembler: public Assembler { |
ra_status, |
save_fp, |
remembered_set_action, |
- smi_check); |
+ smi_check, |
+ pointers_to_here_check_for_value); |
} |
+ void RecordWriteForMap( |
+ Register object, |
+ Register map, |
+ Register dst, |
+ RAStatus ra_status, |
+ SaveFPRegsMode save_fp); |
+ |
// For a given |object| notify the garbage collector that the slot |address| |
// has been written. |value| is the object being stored. The value and |
// address registers are clobbered by the operation. |
@@ -398,7 +414,9 @@ class MacroAssembler: public Assembler { |
RAStatus ra_status, |
SaveFPRegsMode save_fp, |
RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, |
- SmiCheck smi_check = INLINE_SMI_CHECK); |
+ SmiCheck smi_check = INLINE_SMI_CHECK, |
+ PointersToHereCheck pointers_to_here_check_for_value = |
+ kPointersToHereMaybeInteresting); |
// --------------------------------------------------------------------------- |