< prev index next >

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

Print this page
rev 55292 : NativeAccess barrier


 160     template <typename T>
 161     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value);
 162     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value);
 163 
 164     template <typename T>
 165     static oop oop_atomic_xchg_in_heap(oop new_value, T* addr);
 166     static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset);
 167 
 168     template <typename T>
 169     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 170                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 171                                       size_t length);
 172 
 173     // Clone barrier support
 174     static void clone_in_heap(oop src, oop dst, size_t size);
 175 
 176     // Needed for loads on non-heap weak references
 177     template <typename T>
 178     static oop oop_load_not_in_heap(T* addr);
 179 





 180     template <typename T>
 181     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value);
 182 
 183     template <typename T>
 184     static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr);
 185 
 186   };
 187 
 188 };
 189 
 190 template<>
 191 struct BarrierSet::GetName<ShenandoahBarrierSet> {
 192   static const BarrierSet::Name value = BarrierSet::ShenandoahBarrierSet;
 193 };
 194 
 195 template<>
 196 struct BarrierSet::GetType<BarrierSet::ShenandoahBarrierSet> {
 197   typedef ::ShenandoahBarrierSet type;
 198 };
 199 


 160     template <typename T>
 161     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value);
 162     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value);
 163 
 164     template <typename T>
 165     static oop oop_atomic_xchg_in_heap(oop new_value, T* addr);
 166     static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset);
 167 
 168     template <typename T>
 169     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 170                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 171                                       size_t length);
 172 
 173     // Clone barrier support
 174     static void clone_in_heap(oop src, oop dst, size_t size);
 175 
 176     // Needed for loads on non-heap weak references
 177     template <typename T>
 178     static oop oop_load_not_in_heap(T* addr);
 179 
 180 #ifdef ASSERT
 181     // Used for catching bad stores
 182     template <typename T>
 183     static void oop_store_not_in_heap(T* addr, oop value);
 184 #endif
 185     template <typename T>
 186     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value);
 187 
 188     template <typename T>
 189     static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr);
 190 
 191   };
 192 
 193 };
 194 
 195 template<>
 196 struct BarrierSet::GetName<ShenandoahBarrierSet> {
 197   static const BarrierSet::Name value = BarrierSet::ShenandoahBarrierSet;
 198 };
 199 
 200 template<>
 201 struct BarrierSet::GetType<BarrierSet::ShenandoahBarrierSet> {
 202   typedef ::ShenandoahBarrierSet type;
 203 };
 204 
< prev index next >