< prev index next >

src/hotspot/share/gc/shared/barrierSet.hpp

Print this page
rev 53158 : 8215724: Epsilon: ArrayStoreExceptionTest.java fails; missing arraycopy check
Reviewed-by: XXX


 258     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value) {
 259       return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
 260     }
 261 
 262     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value) {
 263       return Raw::oop_atomic_cmpxchg_at(new_value, base, offset, compare_value);
 264     }
 265 
 266     template <typename T>
 267     static oop oop_atomic_xchg_in_heap(oop new_value, T* addr) {
 268       return Raw::oop_atomic_xchg(new_value, addr);
 269     }
 270 
 271     static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset) {
 272       return Raw::oop_atomic_xchg_at(new_value, base, offset);
 273     }
 274 
 275     template <typename T>
 276     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 277                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 278                                       size_t length) {
 279       return Raw::oop_arraycopy(src_obj, src_offset_in_bytes, src_raw,
 280                                 dst_obj, dst_offset_in_bytes, dst_raw,
 281                                 length);
 282     }
 283 
 284     // Off-heap oop accesses. These accessors get resolved when
 285     // IN_HEAP is not set (e.g. when using the NativeAccess API), it is
 286     // an oop* overload, and the barrier strength is AS_NORMAL.
 287     template <typename T>
 288     static oop oop_load_not_in_heap(T* addr) {
 289       return Raw::template oop_load<oop>(addr);
 290     }
 291 
 292     template <typename T>
 293     static void oop_store_not_in_heap(T* addr, oop value) {
 294       Raw::oop_store(addr, value);
 295     }
 296 
 297     template <typename T>
 298     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
 299       return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
 300     }
 301 
 302     template <typename T>




 258     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value) {
 259       return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
 260     }
 261 
 262     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value) {
 263       return Raw::oop_atomic_cmpxchg_at(new_value, base, offset, compare_value);
 264     }
 265 
 266     template <typename T>
 267     static oop oop_atomic_xchg_in_heap(oop new_value, T* addr) {
 268       return Raw::oop_atomic_xchg(new_value, addr);
 269     }
 270 
 271     static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset) {
 272       return Raw::oop_atomic_xchg_at(new_value, base, offset);
 273     }
 274 
 275     template <typename T>
 276     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 277                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 278                                       size_t length);




 279 
 280     // Off-heap oop accesses. These accessors get resolved when
 281     // IN_HEAP is not set (e.g. when using the NativeAccess API), it is
 282     // an oop* overload, and the barrier strength is AS_NORMAL.
 283     template <typename T>
 284     static oop oop_load_not_in_heap(T* addr) {
 285       return Raw::template oop_load<oop>(addr);
 286     }
 287 
 288     template <typename T>
 289     static void oop_store_not_in_heap(T* addr, oop value) {
 290       Raw::oop_store(addr, value);
 291     }
 292 
 293     template <typename T>
 294     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
 295       return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
 296     }
 297 
 298     template <typename T>


< prev index next >