< prev index next >

src/hotspot/share/gc/g1/g1BarrierSet.hpp

8198949_arraycopy
 
   template <class T> void write_ref_array_pre_work(T* dst, int count);
   virtual void write_ref_array_pre(oop* dst, int count, bool dest_uninitialized);
   virtual void write_ref_array_pre(narrowOop* dst, int count, bool dest_uninitialized);
 
+  static void write_ref_array_pre_oop_entry(oop* dst, size_t length);
+  static void write_ref_array_pre_narrow_oop_entry(narrowOop* dst, size_t length);
+  static void write_ref_array_post_entry(HeapWord* dst, size_t length);
+
   template <DecoratorSet decorators, typename T>
   void write_ref_field_pre(T* field);
 
   // NB: if you do a whole-heap invalidation, the "usual invariant" defined
   // above no longer applies.

@@ -68,10 +72,14 void write_ref_field_post_slow(volatile jbyte* byte); virtual void on_thread_attach(JavaThread* thread); virtual void on_thread_detach(JavaThread* thread); +protected: + virtual BarrierSetCodeGen *make_code_gen(); + +public: // Callbacks for runtime accesses. template <DecoratorSet decorators, typename BarrierSetT = G1BarrierSet> class AccessBarrier: public ModRefBarrierSet::AccessBarrier<decorators, BarrierSetT> { typedef ModRefBarrierSet::AccessBarrier<decorators, BarrierSetT> ModRef; typedef BarrierSet::AccessBarrier<decorators, BarrierSetT> Raw;
< prev index next >