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(oop new_value, T* addr, oop compare_value); 74 static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value); 75 76 template <typename T> 77 static oop oop_atomic_xchg_in_heap(oop new_value, T* addr); 78 static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset); 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 // 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(oop new_value, T* addr, oop compare_value); 95 96 template <typename T> 97 static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr); 98 }; 99 }; 100 101 template<> struct BarrierSet::GetName<ZBarrierSet> { 102 static const BarrierSet::Name value = BarrierSet::ZBarrierSet; 103 }; 104 105 template<> struct BarrierSet::GetType<BarrierSet::ZBarrierSet> { 106 typedef ::ZBarrierSet type; | 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(oop new_value, T* addr, oop compare_value); 74 static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value); 75 76 template <typename T> 77 static oop oop_atomic_xchg_in_heap(oop new_value, T* addr); 78 static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset); 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, ValueKlass* md); 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(oop new_value, T* addr, oop compare_value); 97 98 template <typename T> 99 static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr); 100 }; 101 }; 102 103 template<> struct BarrierSet::GetName<ZBarrierSet> { 104 static const BarrierSet::Name value = BarrierSet::ZBarrierSet; 105 }; 106 107 template<> struct BarrierSet::GetType<BarrierSet::ZBarrierSet> { 108 typedef ::ZBarrierSet type; |