Revision: 19639
Author:   [email protected]
Date:     Mon Mar  3 13:27:59 2014 UTC
Log: Consolidate RecordWriteFromCode and RecordWriteForEvacuationFromCode.

BUG=
[email protected]

Review URL: https://codereview.chromium.org/185233008
http://code.google.com/p/v8/source/detail?r=19639

Modified:
 /branches/bleeding_edge/src/a64/code-stubs-a64.cc
 /branches/bleeding_edge/src/a64/code-stubs-a64.h
 /branches/bleeding_edge/src/arm/code-stubs-arm.cc
 /branches/bleeding_edge/src/arm/code-stubs-arm.h
 /branches/bleeding_edge/src/assembler.cc
 /branches/bleeding_edge/src/assembler.h
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.h
 /branches/bleeding_edge/src/incremental-marking.cc
 /branches/bleeding_edge/src/incremental-marking.h
 /branches/bleeding_edge/src/mips/code-stubs-mips.cc
 /branches/bleeding_edge/src/mips/code-stubs-mips.h
 /branches/bleeding_edge/src/serialize.cc
 /branches/bleeding_edge/src/x64/code-stubs-x64.cc
 /branches/bleeding_edge/src/x64/code-stubs-x64.h

=======================================
--- /branches/bleeding_edge/src/a64/code-stubs-a64.cc Fri Feb 28 10:39:36 2014 UTC +++ /branches/bleeding_edge/src/a64/code-stubs-a64.cc Mon Mar 3 13:27:59 2014 UTC
@@ -4710,7 +4710,7 @@
     // remembered set.
     CheckNeedsToInformIncrementalMarker(
         masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
-    InformIncrementalMarker(masm, mode);
+    InformIncrementalMarker(masm);
     regs_.Restore(masm);  // Restore the extra scratch registers we used.
     __ RememberedSetHelper(object_,
                            address_,
@@ -4723,13 +4723,13 @@

   CheckNeedsToInformIncrementalMarker(
       masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
-  InformIncrementalMarker(masm, mode);
+  InformIncrementalMarker(masm);
   regs_.Restore(masm);  // Restore the extra scratch registers we used.
   __ Ret();
 }


-void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
   regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
   Register address =
     x0.Is(regs_.address()) ? regs_.scratch0() : regs_.address();
@@ -4741,10 +4741,8 @@
   __ Mov(x2, Operand(ExternalReference::isolate_address(masm->isolate())));

   AllowExternalCallThatCantCauseGC scope(masm);
-  ExternalReference function = (mode == INCREMENTAL_COMPACTION)
-      ? ExternalReference::incremental_evacuation_record_write_function(
-          masm->isolate())
-      : ExternalReference::incremental_marking_record_write_function(
+  ExternalReference function =
+      ExternalReference::incremental_marking_record_write_function(
           masm->isolate());
   __ CallCFunction(function, 3, 0);

=======================================
--- /branches/bleeding_edge/src/a64/code-stubs-a64.h Wed Feb 12 09:19:30 2014 UTC +++ /branches/bleeding_edge/src/a64/code-stubs-a64.h Mon Mar 3 13:27:59 2014 UTC
@@ -293,7 +293,7 @@
       MacroAssembler* masm,
       OnNoNeedToInformIncrementalMarker on_no_need,
       Mode mode);
-  void InformIncrementalMarker(MacroAssembler* masm, Mode mode);
+  void InformIncrementalMarker(MacroAssembler* masm);

   Major MajorKey() { return RecordWrite; }

=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Fri Feb 28 10:39:36 2014 UTC +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Mon Mar 3 13:27:59 2014 UTC
@@ -4838,7 +4838,7 @@
     // remembered set.
     CheckNeedsToInformIncrementalMarker(
         masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
-    InformIncrementalMarker(masm, mode);
+    InformIncrementalMarker(masm);
     regs_.Restore(masm);
     __ RememberedSetHelper(object_,
                            address_,
@@ -4851,13 +4851,13 @@

   CheckNeedsToInformIncrementalMarker(
       masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
-  InformIncrementalMarker(masm, mode);
+  InformIncrementalMarker(masm);
   regs_.Restore(masm);
   __ Ret();
 }


-void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
   regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
   int argument_count = 3;
   __ PrepareCallCFunction(argument_count, regs_.scratch0());
@@ -4871,18 +4871,10 @@
   __ mov(r2, Operand(ExternalReference::isolate_address(masm->isolate())));

   AllowExternalCallThatCantCauseGC scope(masm);
-  if (mode == INCREMENTAL_COMPACTION) {
-    __ CallCFunction(
-        ExternalReference::incremental_evacuation_record_write_function(
-            masm->isolate()),
-        argument_count);
-  } else {
-    ASSERT(mode == INCREMENTAL);
-    __ CallCFunction(
-        ExternalReference::incremental_marking_record_write_function(
-            masm->isolate()),
-        argument_count);
-  }
+  __ CallCFunction(
+      ExternalReference::incremental_marking_record_write_function(
+          masm->isolate()),
+      argument_count);
   regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode_);
 }

=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.h Wed Jan 22 13:48:05 2014 UTC +++ /branches/bleeding_edge/src/arm/code-stubs-arm.h Mon Mar 3 13:27:59 2014 UTC
@@ -324,7 +324,7 @@
       MacroAssembler* masm,
       OnNoNeedToInformIncrementalMarker on_no_need,
       Mode mode);
-  void InformIncrementalMarker(MacroAssembler* masm, Mode mode);
+  void InformIncrementalMarker(MacroAssembler* masm);

   Major MajorKey() { return RecordWrite; }

=======================================
--- /branches/bleeding_edge/src/assembler.cc    Wed Feb 12 09:19:30 2014 UTC
+++ /branches/bleeding_edge/src/assembler.cc    Mon Mar  3 13:27:59 2014 UTC
@@ -1026,14 +1026,6 @@
       isolate,
       FUNCTION_ADDR(IncrementalMarking::RecordWriteFromCode)));
 }
-
-
-ExternalReference ExternalReference::
-    incremental_evacuation_record_write_function(Isolate* isolate) {
-  return ExternalReference(Redirect(
-      isolate,
- FUNCTION_ADDR(IncrementalMarking::RecordWriteForEvacuationFromCode)));
-}


 ExternalReference ExternalReference::
=======================================
--- /branches/bleeding_edge/src/assembler.h     Wed Feb 12 09:19:30 2014 UTC
+++ /branches/bleeding_edge/src/assembler.h     Mon Mar  3 13:27:59 2014 UTC
@@ -711,8 +711,6 @@

   static ExternalReference incremental_marking_record_write_function(
       Isolate* isolate);
-  static ExternalReference incremental_evacuation_record_write_function(
-      Isolate* isolate);
   static ExternalReference store_buffer_overflow_function(
       Isolate* isolate);
   static ExternalReference flush_icache_function(Isolate* isolate);
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Fri Feb 28 10:39:36 2014 UTC +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Mon Mar 3 13:27:59 2014 UTC
@@ -4691,7 +4691,7 @@
         masm,
         kUpdateRememberedSetOnNoNeedToInformIncrementalMarker,
         mode);
-    InformIncrementalMarker(masm, mode);
+    InformIncrementalMarker(masm);
     regs_.Restore(masm);
     __ RememberedSetHelper(object_,
                            address_,
@@ -4706,13 +4706,13 @@
       masm,
       kReturnOnNoNeedToInformIncrementalMarker,
       mode);
-  InformIncrementalMarker(masm, mode);
+  InformIncrementalMarker(masm);
   regs_.Restore(masm);
   __ ret(0);
 }


-void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
   regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
   int argument_count = 3;
   __ PrepareCallCFunction(argument_count, regs_.scratch0());
@@ -4722,18 +4722,11 @@
          Immediate(ExternalReference::isolate_address(masm->isolate())));

   AllowExternalCallThatCantCauseGC scope(masm);
-  if (mode == INCREMENTAL_COMPACTION) {
-    __ CallCFunction(
-        ExternalReference::incremental_evacuation_record_write_function(
-            masm->isolate()),
-        argument_count);
-  } else {
-    ASSERT(mode == INCREMENTAL);
-    __ CallCFunction(
-        ExternalReference::incremental_marking_record_write_function(
-            masm->isolate()),
-        argument_count);
-  }
+  __ CallCFunction(
+      ExternalReference::incremental_marking_record_write_function(
+          masm->isolate()),
+      argument_count);
+
   regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode_);
 }

=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.h Wed Jan 22 13:48:05 2014 UTC +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.h Mon Mar 3 13:27:59 2014 UTC
@@ -428,7 +428,7 @@
       MacroAssembler* masm,
       OnNoNeedToInformIncrementalMarker on_no_need,
       Mode mode);
-  void InformIncrementalMarker(MacroAssembler* masm, Mode mode);
+  void InformIncrementalMarker(MacroAssembler* masm);

   Major MajorKey() { return RecordWrite; }

=======================================
--- /branches/bleeding_edge/src/incremental-marking.cc Mon Jan 20 14:14:07 2014 UTC +++ /branches/bleeding_edge/src/incremental-marking.cc Mon Mar 3 13:27:59 2014 UTC
@@ -83,28 +83,6 @@
                                              Isolate* isolate) {
   ASSERT(obj->IsHeapObject());
   IncrementalMarking* marking = isolate->heap()->incremental_marking();
-  ASSERT(!marking->is_compacting_);
-
-  MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address());
-  int counter = chunk->write_barrier_counter();
-  if (counter < (MemoryChunk::kWriteBarrierCounterGranularity / 2)) {
-    marking->write_barriers_invoked_since_last_step_ +=
-        MemoryChunk::kWriteBarrierCounterGranularity -
-            chunk->write_barrier_counter();
-    chunk->set_write_barrier_counter(
-        MemoryChunk::kWriteBarrierCounterGranularity);
-  }
-
-  marking->RecordWrite(obj, slot, *slot);
-}
-
-
-void IncrementalMarking::RecordWriteForEvacuationFromCode(HeapObject* obj,
-                                                          Object** slot,
- Isolate* isolate) {
-  ASSERT(obj->IsHeapObject());
-  IncrementalMarking* marking = isolate->heap()->incremental_marking();
-  ASSERT(marking->is_compacting_);

   MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address());
   int counter = chunk->write_barrier_counter();
=======================================
--- /branches/bleeding_edge/src/incremental-marking.h Tue Feb 11 16:22:26 2014 UTC +++ /branches/bleeding_edge/src/incremental-marking.h Mon Mar 3 13:27:59 2014 UTC
@@ -129,10 +129,6 @@
                                   Object** slot,
                                   Isolate* isolate);

-  static void RecordWriteForEvacuationFromCode(HeapObject* obj,
-                                               Object** slot,
-                                               Isolate* isolate);
-
   // Record a slot for compaction.  Returns false for objects that are
   // guaranteed to be rescanned or not guaranteed to survive.
   //
=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.cc Fri Feb 28 10:39:36 2014 UTC +++ /branches/bleeding_edge/src/mips/code-stubs-mips.cc Mon Mar 3 13:27:59 2014 UTC
@@ -5026,7 +5026,7 @@
     // remembered set.
     CheckNeedsToInformIncrementalMarker(
         masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
-    InformIncrementalMarker(masm, mode);
+    InformIncrementalMarker(masm);
     regs_.Restore(masm);
     __ RememberedSetHelper(object_,
                            address_,
@@ -5039,13 +5039,13 @@

   CheckNeedsToInformIncrementalMarker(
       masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
-  InformIncrementalMarker(masm, mode);
+  InformIncrementalMarker(masm);
   regs_.Restore(masm);
   __ Ret();
 }


-void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
   regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
   int argument_count = 3;
   __ PrepareCallCFunction(argument_count, regs_.scratch0());
@@ -5059,18 +5059,10 @@
   __ li(a2, Operand(ExternalReference::isolate_address(masm->isolate())));

   AllowExternalCallThatCantCauseGC scope(masm);
-  if (mode == INCREMENTAL_COMPACTION) {
-    __ CallCFunction(
-        ExternalReference::incremental_evacuation_record_write_function(
-            masm->isolate()),
-        argument_count);
-  } else {
-    ASSERT(mode == INCREMENTAL);
-    __ CallCFunction(
-        ExternalReference::incremental_marking_record_write_function(
-            masm->isolate()),
-        argument_count);
-  }
+  __ CallCFunction(
+      ExternalReference::incremental_marking_record_write_function(
+          masm->isolate()),
+      argument_count);
   regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode_);
 }

=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.h Wed Jan 22 13:48:05 2014 UTC +++ /branches/bleeding_edge/src/mips/code-stubs-mips.h Mon Mar 3 13:27:59 2014 UTC
@@ -367,7 +367,7 @@
       MacroAssembler* masm,
       OnNoNeedToInformIncrementalMarker on_no_need,
       Mode mode);
-  void InformIncrementalMarker(MacroAssembler* masm, Mode mode);
+  void InformIncrementalMarker(MacroAssembler* masm);

   Major MajorKey() { return RecordWrite; }

=======================================
--- /branches/bleeding_edge/src/serialize.cc    Mon Feb 17 10:41:25 2014 UTC
+++ /branches/bleeding_edge/src/serialize.cc    Mon Mar  3 13:27:59 2014 UTC
@@ -310,11 +310,6 @@
       RUNTIME_ENTRY,
       6,
       "StoreBuffer::StoreBufferOverflow");
-  Add(ExternalReference::
-          incremental_evacuation_record_write_function(isolate).address(),
-      RUNTIME_ENTRY,
-      7,
-      "IncrementalMarking::RecordWrite");

   // Miscellaneous
   Add(ExternalReference::roots_array_start(isolate).address(),
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Fri Feb 28 10:39:36 2014 UTC +++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Mon Mar 3 13:27:59 2014 UTC
@@ -4537,7 +4537,7 @@
     // remembered set.
     CheckNeedsToInformIncrementalMarker(
         masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
-    InformIncrementalMarker(masm, mode);
+    InformIncrementalMarker(masm);
     regs_.Restore(masm);
     __ RememberedSetHelper(object_,
                            address_,
@@ -4550,13 +4550,13 @@

   CheckNeedsToInformIncrementalMarker(
       masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
-  InformIncrementalMarker(masm, mode);
+  InformIncrementalMarker(masm);
   regs_.Restore(masm);
   __ ret(0);
 }


-void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
   regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
   Register address =
       arg_reg_1.is(regs_.address()) ? kScratchRegister : regs_.address();
@@ -4572,18 +4572,10 @@

   AllowExternalCallThatCantCauseGC scope(masm);
   __ PrepareCallCFunction(argument_count);
-  if (mode == INCREMENTAL_COMPACTION) {
-    __ CallCFunction(
-        ExternalReference::incremental_evacuation_record_write_function(
-            masm->isolate()),
-        argument_count);
-  } else {
-    ASSERT(mode == INCREMENTAL);
-    __ CallCFunction(
-        ExternalReference::incremental_marking_record_write_function(
-            masm->isolate()),
-        argument_count);
-  }
+  __ CallCFunction(
+      ExternalReference::incremental_marking_record_write_function(
+          masm->isolate()),
+      argument_count);
   regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode_);
 }

=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.h Wed Jan 22 13:48:05 2014 UTC +++ /branches/bleeding_edge/src/x64/code-stubs-x64.h Mon Mar 3 13:27:59 2014 UTC
@@ -401,7 +401,7 @@
       MacroAssembler* masm,
       OnNoNeedToInformIncrementalMarker on_no_need,
       Mode mode);
-  void InformIncrementalMarker(MacroAssembler* masm, Mode mode);
+  void InformIncrementalMarker(MacroAssembler* masm);

   Major MajorKey() { return RecordWrite; }

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to