< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp

Print this page




  54   }
  55 
  56   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
  57     return barrier_set()->_satb_mark_queue_set;
  58   }
  59 
  60   void print_on(outputStream* st) const;
  61 
  62   bool is_a(BarrierSet::Name bsn);
  63 
  64   bool is_aligned(HeapWord* hw);
  65 
  66   template <class T> void
  67   write_ref_array_pre_work(T* src, T* dst, size_t count, bool dest_uninitialized);
  68 
  69   inline void arraycopy_pre(oop* src, oop* dst, size_t count);
  70   inline void arraycopy_pre(narrowOop* src, narrowOop* dst, size_t count);
  71   inline void arraycopy_update(oop* src, size_t count);
  72   inline void arraycopy_update(narrowOop* src, size_t count);
  73   inline void clone_barrier(oop src);

  74 
  75   // We export this to make it available in cases where the static
  76   // type of the barrier set is known.  Note that it is non-virtual.
  77   template <class T> inline void inline_write_ref_field_pre(T* field, oop new_val);
  78 
  79   // These are the more general virtual versions.
  80   void write_ref_field_pre_work(oop* field, oop new_val);
  81   void write_ref_field_pre_work(narrowOop* field, oop new_val);
  82   void write_ref_field_pre_work(void* field, oop new_val);
  83 
  84   void write_ref_field_work(void* v, oop o, bool release = false);
  85 
  86   oop oop_load_from_native_barrier(oop obj);
  87 
  88   virtual void on_thread_create(Thread* thread);
  89   virtual void on_thread_destroy(Thread* thread);
  90   virtual void on_thread_attach(Thread* thread);
  91   virtual void on_thread_detach(Thread* thread);
  92 
  93   static inline oop resolve_forwarded_not_null(oop p);




  54   }
  55 
  56   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
  57     return barrier_set()->_satb_mark_queue_set;
  58   }
  59 
  60   void print_on(outputStream* st) const;
  61 
  62   bool is_a(BarrierSet::Name bsn);
  63 
  64   bool is_aligned(HeapWord* hw);
  65 
  66   template <class T> void
  67   write_ref_array_pre_work(T* src, T* dst, size_t count, bool dest_uninitialized);
  68 
  69   inline void arraycopy_pre(oop* src, oop* dst, size_t count);
  70   inline void arraycopy_pre(narrowOop* src, narrowOop* dst, size_t count);
  71   inline void arraycopy_update(oop* src, size_t count);
  72   inline void arraycopy_update(narrowOop* src, size_t count);
  73   inline void clone_barrier(oop src);
  74   void clone_barrier_runtime(oop src);
  75 
  76   // We export this to make it available in cases where the static
  77   // type of the barrier set is known.  Note that it is non-virtual.
  78   template <class T> inline void inline_write_ref_field_pre(T* field, oop new_val);
  79 
  80   // These are the more general virtual versions.
  81   void write_ref_field_pre_work(oop* field, oop new_val);
  82   void write_ref_field_pre_work(narrowOop* field, oop new_val);
  83   void write_ref_field_pre_work(void* field, oop new_val);
  84 
  85   void write_ref_field_work(void* v, oop o, bool release = false);
  86 
  87   oop oop_load_from_native_barrier(oop obj);
  88 
  89   virtual void on_thread_create(Thread* thread);
  90   virtual void on_thread_destroy(Thread* thread);
  91   virtual void on_thread_attach(Thread* thread);
  92   virtual void on_thread_detach(Thread* thread);
  93 
  94   static inline oop resolve_forwarded_not_null(oop p);


< prev index next >