78 inline void clone_barrier(oop src);
79 void clone_barrier_runtime(oop src);
80
81 virtual void on_thread_create(Thread* thread);
82 virtual void on_thread_destroy(Thread* thread);
83 virtual void on_thread_attach(Thread* thread);
84 virtual void on_thread_detach(Thread* thread);
85
86 static inline oop resolve_forwarded_not_null(oop p);
87 static inline oop resolve_forwarded_not_null_mutator(oop p);
88 static inline oop resolve_forwarded(oop p);
89
90 template <DecoratorSet decorators, typename T>
91 inline void satb_barrier(T* field);
92 inline void satb_enqueue(oop value);
93 inline void storeval_barrier(oop obj);
94
95 template <DecoratorSet decorators>
96 inline void keep_alive_if_weak(oop value);
97 inline void keep_alive_if_weak(DecoratorSet decorators, oop value);
98 inline void keep_alive_barrier(oop value);
99
100 inline void enqueue(oop obj);
101
102 oop load_reference_barrier(oop obj);
103 oop load_reference_barrier_not_null(oop obj);
104
105 oop load_reference_barrier_mutator(oop obj, oop* load_addr);
106 oop load_reference_barrier_mutator(oop obj, narrowOop* load_addr);
107
108 template <class T>
109 oop load_reference_barrier_mutator_work(oop obj, T* load_addr);
110
111 oop load_reference_barrier_native(oop obj, oop* load_addr);
112 oop load_reference_barrier_native(oop obj, narrowOop* load_addr);
113
114 private:
115 template <class T>
116 inline void arraycopy_pre_work(T* src, T* dst, size_t count);
117 template <class T, bool HAS_FWD, bool EVAC, bool ENQUEUE>
118 inline void arraycopy_work(T* src, size_t count);
|
78 inline void clone_barrier(oop src);
79 void clone_barrier_runtime(oop src);
80
81 virtual void on_thread_create(Thread* thread);
82 virtual void on_thread_destroy(Thread* thread);
83 virtual void on_thread_attach(Thread* thread);
84 virtual void on_thread_detach(Thread* thread);
85
86 static inline oop resolve_forwarded_not_null(oop p);
87 static inline oop resolve_forwarded_not_null_mutator(oop p);
88 static inline oop resolve_forwarded(oop p);
89
90 template <DecoratorSet decorators, typename T>
91 inline void satb_barrier(T* field);
92 inline void satb_enqueue(oop value);
93 inline void storeval_barrier(oop obj);
94
95 template <DecoratorSet decorators>
96 inline void keep_alive_if_weak(oop value);
97 inline void keep_alive_if_weak(DecoratorSet decorators, oop value);
98
99 inline void enqueue(oop obj);
100
101 oop load_reference_barrier(oop obj);
102 oop load_reference_barrier_not_null(oop obj);
103
104 oop load_reference_barrier_mutator(oop obj, oop* load_addr);
105 oop load_reference_barrier_mutator(oop obj, narrowOop* load_addr);
106
107 template <class T>
108 oop load_reference_barrier_mutator_work(oop obj, T* load_addr);
109
110 oop load_reference_barrier_native(oop obj, oop* load_addr);
111 oop load_reference_barrier_native(oop obj, narrowOop* load_addr);
112
113 private:
114 template <class T>
115 inline void arraycopy_pre_work(T* src, T* dst, size_t count);
116 template <class T, bool HAS_FWD, bool EVAC, bool ENQUEUE>
117 inline void arraycopy_work(T* src, size_t count);
|