src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp
changeset 59251 4cbfa5077d68
parent 58985 5606867a5e6e
child 59252 623722a6aeb9
equal deleted inserted replaced
59250:a6deb69743d4 59251:4cbfa5077d68
   143 
   143 
   144     template <typename T>
   144     template <typename T>
   145     static oop oop_atomic_cmpxchg_in_heap_impl(oop new_value, T* addr, oop compare_value);
   145     static oop oop_atomic_cmpxchg_in_heap_impl(oop new_value, T* addr, oop compare_value);
   146 
   146 
   147     template <typename T>
   147     template <typename T>
   148     static oop oop_atomic_xchg_in_heap_impl(oop new_value, T* addr);
   148     static oop oop_atomic_xchg_in_heap_impl(T* addr, oop new_value);
   149 
   149 
   150   public:
   150   public:
   151     // Heap oop accesses. These accessors get resolved when
   151     // Heap oop accesses. These accessors get resolved when
   152     // IN_HEAP is set (e.g. when using the HeapAccess API), it is
   152     // IN_HEAP is set (e.g. when using the HeapAccess API), it is
   153     // an oop_* overload, and the barrier strength is AS_NORMAL.
   153     // an oop_* overload, and the barrier strength is AS_NORMAL.
   162     template <typename T>
   162     template <typename T>
   163     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value);
   163     static oop oop_atomic_cmpxchg_in_heap(oop new_value, T* addr, oop compare_value);
   164     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value);
   164     static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value);
   165 
   165 
   166     template <typename T>
   166     template <typename T>
   167     static oop oop_atomic_xchg_in_heap(oop new_value, T* addr);
   167     static oop oop_atomic_xchg_in_heap(T* addr, oop new_value);
   168     static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset);
   168     static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
   169 
   169 
   170     template <typename T>
   170     template <typename T>
   171     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
   171     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
   172                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
   172                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
   173                                       size_t length);
   173                                       size_t length);
   185 
   185 
   186     template <typename T>
   186     template <typename T>
   187     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value);
   187     static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value);
   188 
   188 
   189     template <typename T>
   189     template <typename T>
   190     static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr);
   190     static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value);
   191 
   191 
   192   };
   192   };
   193 
   193 
   194 };
   194 };
   195 
   195