< prev index next >

src/hotspot/share/gc/x/xBarrierSet.hpp

Print this page

 61     template <typename T>
 62     static oop load_barrier_on_unknown_oop_field_preloaded(oop base, ptrdiff_t offset, T* addr, oop o);
 63 
 64   public:
 65     //
 66     // In heap
 67     //
 68     template <typename T>
 69     static oop oop_load_in_heap(T* addr);
 70     static oop oop_load_in_heap_at(oop base, ptrdiff_t offset);
 71 
 72     template <typename T>
 73     static oop oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value);
 74     static oop oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value);
 75 
 76     template <typename T>
 77     static oop oop_atomic_xchg_in_heap(T* addr, oop new_value);
 78     static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
 79 
 80     template <typename T>
 81     static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 82                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 83                                       size_t length);
 84 
 85     static void clone_in_heap(oop src, oop dst, size_t size);
 86 


 87     //
 88     // Not in heap
 89     //
 90     template <typename T>
 91     static oop oop_load_not_in_heap(T* addr);
 92 
 93     template <typename T>
 94     static oop oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value);
 95 
 96     template <typename T>
 97     static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value);
 98   };
 99 };
100 
101 template<> struct BarrierSet::GetName<XBarrierSet> {
102   static const BarrierSet::Name value = BarrierSet::XBarrierSet;
103 };
104 
105 template<> struct BarrierSet::GetType<BarrierSet::XBarrierSet> {
106   typedef ::XBarrierSet type;

 61     template <typename T>
 62     static oop load_barrier_on_unknown_oop_field_preloaded(oop base, ptrdiff_t offset, T* addr, oop o);
 63 
 64   public:
 65     //
 66     // In heap
 67     //
 68     template <typename T>
 69     static oop oop_load_in_heap(T* addr);
 70     static oop oop_load_in_heap_at(oop base, ptrdiff_t offset);
 71 
 72     template <typename T>
 73     static oop oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value);
 74     static oop oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value);
 75 
 76     template <typename T>
 77     static oop oop_atomic_xchg_in_heap(T* addr, oop new_value);
 78     static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
 79 
 80     template <typename T>
 81     static void oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw,
 82                                       arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw,
 83                                       size_t length);
 84 
 85     static void clone_in_heap(oop src, oop dst, size_t size);
 86 
 87     static void value_copy_in_heap(void* src, void* dst, InlineKlass* md, LayoutKind lk);
 88 
 89     //
 90     // Not in heap
 91     //
 92     template <typename T>
 93     static oop oop_load_not_in_heap(T* addr);
 94 
 95     template <typename T>
 96     static oop oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value);
 97 
 98     template <typename T>
 99     static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value);
100   };
101 };
102 
103 template<> struct BarrierSet::GetName<XBarrierSet> {
104   static const BarrierSet::Name value = BarrierSet::XBarrierSet;
105 };
106 
107 template<> struct BarrierSet::GetType<BarrierSet::XBarrierSet> {
108   typedef ::XBarrierSet type;
< prev index next >