< prev index next >

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

Print this page

137     // Heap oop accesses. These accessors get resolved when
138     // IN_HEAP is set (e.g. when using the HeapAccess API), it is
139     // an oop_* overload, and the barrier strength is AS_NORMAL.
140     template <typename T>
141     static oop oop_load_in_heap(T* addr);
142     static oop oop_load_in_heap_at(oop base, ptrdiff_t offset);
143 
144     template <typename T>
145     static void oop_store_in_heap(T* addr, oop value);
146     static void oop_store_in_heap_at(oop base, ptrdiff_t offset, oop value);
147 
148     template <typename T>
149     static oop oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value);
150     static oop oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value);
151 
152     template <typename T>
153     static oop oop_atomic_xchg_in_heap(T* addr, oop new_value);
154     static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
155 
156     template <typename T>
157     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
158                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
159                                       size_t length);
160 
161     // Clone barrier support
162     static void clone_in_heap(oop src, oop dst, size_t size);
163 
164     // Support for concurrent roots evacuation, updating and weak roots clearing
165     template <typename T>
166     static oop oop_load_not_in_heap(T* addr);
167 
168     // Support for concurrent roots marking
169     template <typename T>
170     static void oop_store_not_in_heap(T* addr, oop value);
171 
172     template <typename T>
173     static oop oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value);
174 
175     template <typename T>
176     static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value);
177 

137     // Heap oop accesses. These accessors get resolved when
138     // IN_HEAP is set (e.g. when using the HeapAccess API), it is
139     // an oop_* overload, and the barrier strength is AS_NORMAL.
140     template <typename T>
141     static oop oop_load_in_heap(T* addr);
142     static oop oop_load_in_heap_at(oop base, ptrdiff_t offset);
143 
144     template <typename T>
145     static void oop_store_in_heap(T* addr, oop value);
146     static void oop_store_in_heap_at(oop base, ptrdiff_t offset, oop value);
147 
148     template <typename T>
149     static oop oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value);
150     static oop oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value);
151 
152     template <typename T>
153     static oop oop_atomic_xchg_in_heap(T* addr, oop new_value);
154     static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
155 
156     template <typename T>
157     static void oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
158                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
159                                       size_t length);
160 
161     // Clone barrier support
162     static void clone_in_heap(oop src, oop dst, size_t size);
163 
164     // Support for concurrent roots evacuation, updating and weak roots clearing
165     template <typename T>
166     static oop oop_load_not_in_heap(T* addr);
167 
168     // Support for concurrent roots marking
169     template <typename T>
170     static void oop_store_not_in_heap(T* addr, oop value);
171 
172     template <typename T>
173     static oop oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value);
174 
175     template <typename T>
176     static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value);
177 
< prev index next >