< prev index next >

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

8198949_arraycopy

*** 51,60 **** --- 51,64 ---- 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,77 **** --- 72,85 ---- 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 >