67 write_ref_array_pre_work(T* dst, size_t count);
68
69 void write_ref_array_pre(oop* dst, size_t count, bool dest_uninitialized);
70
71 void write_ref_array_pre(narrowOop* dst, size_t count, bool dest_uninitialized);
72
73 // We export this to make it available in cases where the static
74 // type of the barrier set is known. Note that it is non-virtual.
75 template <class T> inline void inline_write_ref_field_pre(T* field, oop new_val);
76
77 // These are the more general virtual versions.
78 void write_ref_field_pre_work(oop* field, oop new_val);
79 void write_ref_field_pre_work(narrowOop* field, oop new_val);
80 void write_ref_field_pre_work(void* field, oop new_val);
81
82 void write_ref_field_work(void* v, oop o, bool release = false);
83 void write_region(MemRegion mr);
84
85 virtual void on_thread_create(Thread* thread);
86 virtual void on_thread_destroy(Thread* thread);
87 virtual void on_thread_attach(JavaThread* thread);
88 virtual void on_thread_detach(JavaThread* thread);
89
90 virtual oop read_barrier(oop src);
91
92 static inline oop resolve_forwarded_not_null(oop p);
93 static inline oop resolve_forwarded(oop p);
94
95 virtual oop write_barrier(oop obj);
96
97 oop write_barrier_mutator(oop obj);
98
99 virtual oop storeval_barrier(oop obj);
100
101 virtual void keep_alive_barrier(oop obj);
102
103 bool obj_equals(oop obj1, oop obj2);
104
105 #ifdef CHECK_UNHANDLED_OOPS
106 bool oop_equals_operator_allowed() { return !ShenandoahVerifyObjectEquals; }
107 #endif
108
|
67 write_ref_array_pre_work(T* dst, size_t count);
68
69 void write_ref_array_pre(oop* dst, size_t count, bool dest_uninitialized);
70
71 void write_ref_array_pre(narrowOop* dst, size_t count, bool dest_uninitialized);
72
73 // We export this to make it available in cases where the static
74 // type of the barrier set is known. Note that it is non-virtual.
75 template <class T> inline void inline_write_ref_field_pre(T* field, oop new_val);
76
77 // These are the more general virtual versions.
78 void write_ref_field_pre_work(oop* field, oop new_val);
79 void write_ref_field_pre_work(narrowOop* field, oop new_val);
80 void write_ref_field_pre_work(void* field, oop new_val);
81
82 void write_ref_field_work(void* v, oop o, bool release = false);
83 void write_region(MemRegion mr);
84
85 virtual void on_thread_create(Thread* thread);
86 virtual void on_thread_destroy(Thread* thread);
87 virtual void on_thread_attach(Thread* thread);
88 virtual void on_thread_detach(Thread* thread);
89
90 virtual oop read_barrier(oop src);
91
92 static inline oop resolve_forwarded_not_null(oop p);
93 static inline oop resolve_forwarded(oop p);
94
95 virtual oop write_barrier(oop obj);
96
97 oop write_barrier_mutator(oop obj);
98
99 virtual oop storeval_barrier(oop obj);
100
101 virtual void keep_alive_barrier(oop obj);
102
103 bool obj_equals(oop obj1, oop obj2);
104
105 #ifdef CHECK_UNHANDLED_OOPS
106 bool oop_equals_operator_allowed() { return !ShenandoahVerifyObjectEquals; }
107 #endif
108
|