Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

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

Issue 6794052: Combine the incremental-marking write barrier and the remembered-set... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/gc/
Patch Set: '' Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ia32/macro-assembler-ia32.h
===================================================================
--- src/ia32/macro-assembler-ia32.h (revision 7503)
+++ src/ia32/macro-assembler-ia32.h (working copy)
@@ -53,10 +53,11 @@
class JumpTarget;
class PostCallGenerator;
+enum EmitRememberedSet { EMIT_REMEMBERED_SET, OMIT_REMEMBERED_SET };
enum SmiCheck { INLINE_SMI_CHECK, OMIT_SMI_CHECK };
enum ObjectMode { PRESERVE_OBJECT, DESTROY_OBJECT };
enum ValueMode { PRESERVE_VALUE, DESTROY_VALUE };
-enum ScratchMode { PRESERVE_SCRATCH, DESTROY_SCRATCH };
+enum AddressMode { PRESERVE_ADDRESS, DESTROY_ADDRESS };
// MacroAssembler implements a collection of frequently used macros.
class MacroAssembler: public Assembler {
@@ -68,28 +69,15 @@
void IncrementalMarkingRecordWriteHelper(Register object,
Register value,
- Register scratch,
- ObjectMode object_mode,
- ValueMode value_mode,
- ScratchMode scratch_mode);
+ Register address);
-
- void IncrementalMarkingRecordWrite(Register object,
- Register value,
- Register scratch,
- SmiCheck smi_check,
- ObjectMode object_mode,
- ValueMode value_mode,
- ScratchMode scratch_mode);
-
-
// For page containing |object| mark region covering |addr| dirty.
- // RecordWriteHelper only works if the object is not in new
+ // RememberedSetHelper only works if the object is not in new
// space.
- void RecordWriteHelper(Register object,
- Register addr,
- Register scratch,
- SaveFPRegsMode save_fp);
+ void RememberedSetHelper(Register object,
+ Register addr,
+ Register scratch,
+ SaveFPRegsMode save_fp);
// Check if object is in new space.
// scratch can be object itself, but it will be clobbered.
@@ -120,7 +108,9 @@
void RecordWrite(Register object,
Register address,
Register value,
- SaveFPRegsMode save_fp);
+ EmitRememberedSet emit_remembered_set,
+ SaveFPRegsMode save_fp,
+ SmiCheck smi_check = INLINE_SMI_CHECK);
#ifdef ENABLE_DEBUGGER_SUPPORT
// ---------------------------------------------------------------------------
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698