Chromium Code Reviews

Unified Diff: src/arm/macro-assembler-arm.h

Issue 297763006: Improve write barriers in optimized code. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: src/arm/macro-assembler-arm.h
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h
index 5f77be6a4293feb82e6bde281ae0c5769b4c97bf..2299baf6770e53af2324e3b0698167949adb09cd 100644
--- a/src/arm/macro-assembler-arm.h
+++ b/src/arm/macro-assembler-arm.h
@@ -244,7 +244,15 @@ 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,
+ bool value_is_in_new_space = false);
+
+ void RecordWriteForMap(
+ Register object,
+ Register map,
+ Register dst,
+ LinkRegisterStatus lr_status,
+ SaveFPRegsMode save_fp);
// As above, but the offset has the tag presubtracted. For use with
// MemOperand(reg, off).
@@ -256,7 +264,8 @@ 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,
+ bool value_is_in_new_space = false) {
RecordWriteField(context,
offset + kHeapObjectTag,
value,
@@ -264,7 +273,8 @@ class MacroAssembler: public Assembler {
lr_status,
save_fp,
remembered_set_action,
- smi_check);
+ smi_check,
+ value_is_in_new_space);
}
// For a given |object| notify the garbage collector that the slot |address|
@@ -277,7 +287,8 @@ 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,
+ bool value_is_in_new_space = false);
// Push a handle.
void Push(Handle<Object> handle);

Powered by Google App Engine