78 return barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set());
79 }
80
81 G1CardTable* refinement_table() const { return _refinement_table.load_relaxed(); }
82
83 // Swap the global card table references, without synchronization.
84 void swap_global_card_table();
85
86 // Update the given thread's card table (byte map) base to the current card table's.
87 void update_card_table_base(Thread* thread);
88
89 // Add "pre_val" to a set of objects that may have been disconnected from the
90 // pre-marking object graph. Prefer the version that takes location, as it
91 // can avoid touching the heap unnecessarily.
92 template <class T> static void enqueue(T* dst);
93 static void enqueue_preloaded(oop pre_val);
94
95 static void enqueue_preloaded_if_weak(DecoratorSet decorators, oop value);
96
97 template <class T> void write_ref_array_pre_work(T* dst, size_t count);
98 virtual void write_ref_array_pre(oop* dst, size_t count, bool dest_uninitialized);
99 virtual void write_ref_array_pre(narrowOop* dst, size_t count, bool dest_uninitialized);
100
101 template <DecoratorSet decorators, typename T>
102 void write_ref_field_pre(T* field);
103
104 virtual void write_region(MemRegion mr);
105
106 template <DecoratorSet decorators = DECORATORS_NONE, typename T>
107 void write_ref_field_post(T* field);
108
109 virtual void on_thread_create(Thread* thread);
110 virtual void on_thread_destroy(Thread* thread);
111 virtual void on_thread_attach(Thread* thread);
112 virtual void on_thread_detach(Thread* thread);
113
114 static G1SATBMarkQueueSet& satb_mark_queue_set() {
115 return g1_barrier_set()->_satb_mark_queue_set;
116 }
117
118 virtual void print_on(outputStream* st) const;
119
|
78 return barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set());
79 }
80
81 G1CardTable* refinement_table() const { return _refinement_table.load_relaxed(); }
82
83 // Swap the global card table references, without synchronization.
84 void swap_global_card_table();
85
86 // Update the given thread's card table (byte map) base to the current card table's.
87 void update_card_table_base(Thread* thread);
88
89 // Add "pre_val" to a set of objects that may have been disconnected from the
90 // pre-marking object graph. Prefer the version that takes location, as it
91 // can avoid touching the heap unnecessarily.
92 template <class T> static void enqueue(T* dst);
93 static void enqueue_preloaded(oop pre_val);
94
95 static void enqueue_preloaded_if_weak(DecoratorSet decorators, oop value);
96
97 template <class T> void write_ref_array_pre_work(T* dst, size_t count);
98 virtual void write_ref_array_pre(oop* dst, size_t count);
99 virtual void write_ref_array_pre(narrowOop* dst, size_t count);
100
101 template <DecoratorSet decorators, typename T>
102 void write_ref_field_pre(T* field);
103
104 virtual void write_region(MemRegion mr);
105
106 template <DecoratorSet decorators = DECORATORS_NONE, typename T>
107 void write_ref_field_post(T* field);
108
109 virtual void on_thread_create(Thread* thread);
110 virtual void on_thread_destroy(Thread* thread);
111 virtual void on_thread_attach(Thread* thread);
112 virtual void on_thread_detach(Thread* thread);
113
114 static G1SATBMarkQueueSet& satb_mark_queue_set() {
115 return g1_barrier_set()->_satb_mark_queue_set;
116 }
117
118 virtual void print_on(outputStream* st) const;
119
|