Index: src/arm/macro-assembler-arm.h |
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h |
index 040754529525382aebfb1f942726a745f2946e82..928995abbf6d63601d53ba469a640a4790b5791f 100644 |
--- a/src/arm/macro-assembler-arm.h |
+++ b/src/arm/macro-assembler-arm.h |
@@ -37,6 +37,10 @@ enum TaggingMode { |
enum RememberedSetAction { EMIT_REMEMBERED_SET, OMIT_REMEMBERED_SET }; |
enum SmiCheck { INLINE_SMI_CHECK, OMIT_SMI_CHECK }; |
+enum PointersToHereCheck { |
+ kPointersToHereMaybeInteresting, |
+ kPointersToHereAreAlwaysInteresting |
+}; |
enum LinkRegisterStatus { kLRHasNotBeenSaved, kLRHasBeenSaved }; |
@@ -244,7 +248,9 @@ class MacroAssembler: public Assembler { |
LinkRegisterStatus lr_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). |
@@ -256,7 +262,9 @@ class MacroAssembler: public Assembler { |
LinkRegisterStatus lr_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, |
@@ -264,9 +272,17 @@ class MacroAssembler: public Assembler { |
lr_status, |
save_fp, |
remembered_set_action, |
- smi_check); |
+ smi_check, |
+ pointers_to_here_check_for_value); |
} |
+ void RecordWriteForMap( |
+ Register object, |
+ Register map, |
+ Register dst, |
+ LinkRegisterStatus lr_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. |
@@ -277,7 +293,9 @@ class MacroAssembler: public Assembler { |
LinkRegisterStatus lr_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); |
// Push a handle. |
void Push(Handle<Object> handle); |