134 static oop oop_atomic_xchg_in_heap(oop* p, oop new_value) { return oop_atomic_xchg_in_heap((zpointer*)p, new_value); }
135 static oop oop_atomic_xchg_in_heap(narrowOop* p, oop new_value) { unsupported(); return nullptr; }
136 static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
137
138 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, zpointer* src_raw,
139 arrayOop dst_obj, size_t dst_offset_in_bytes, zpointer* dst_raw,
140 size_t length);
141 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, oop* src_raw,
142 arrayOop dst_obj, size_t dst_offset_in_bytes, oop* dst_raw,
143 size_t length) {
144 return oop_arraycopy_in_heap(src_obj, src_offset_in_bytes, (zpointer*)src_raw,
145 dst_obj, dst_offset_in_bytes, (zpointer*)dst_raw,
146 length);
147 }
148 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, narrowOop* src_raw,
149 arrayOop dst_obj, size_t dst_offset_in_bytes, narrowOop* dst_raw,
150 size_t length) { unsupported(); }
151
152 static void clone_in_heap(oop src, oop dst, size_t size);
153
154 //
155 // Not in heap
156 //
157 static oop oop_load_not_in_heap(zpointer* p);
158 static oop oop_load_not_in_heap(oop* p);
159 static oop oop_load_not_in_heap(narrowOop* p) { unsupported(); return nullptr; }
160
161 static oop oop_atomic_cmpxchg_not_in_heap(zpointer* p, oop compare_value, oop new_value);
162 static oop oop_atomic_cmpxchg_not_in_heap(oop* p, oop compare_value, oop new_value) {
163 return oop_atomic_cmpxchg_not_in_heap((zpointer*)p, compare_value, new_value);
164 }
165 static oop oop_atomic_cmpxchg_not_in_heap(narrowOop* addr, oop compare_value, oop new_value) { unsupported(); return nullptr; }
166
167 static oop oop_atomic_xchg_not_in_heap(zpointer* p, oop new_value);
168 static oop oop_atomic_xchg_not_in_heap(oop* p, oop new_value) { return oop_atomic_xchg_not_in_heap((zpointer*)p, new_value); }
169 static oop oop_atomic_xchg_not_in_heap(narrowOop* p, oop new_value) { unsupported(); return nullptr; }
170 };
171 };
172
173 template<> struct BarrierSet::GetName<ZBarrierSet> {
|
134 static oop oop_atomic_xchg_in_heap(oop* p, oop new_value) { return oop_atomic_xchg_in_heap((zpointer*)p, new_value); }
135 static oop oop_atomic_xchg_in_heap(narrowOop* p, oop new_value) { unsupported(); return nullptr; }
136 static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value);
137
138 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, zpointer* src_raw,
139 arrayOop dst_obj, size_t dst_offset_in_bytes, zpointer* dst_raw,
140 size_t length);
141 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, oop* src_raw,
142 arrayOop dst_obj, size_t dst_offset_in_bytes, oop* dst_raw,
143 size_t length) {
144 return oop_arraycopy_in_heap(src_obj, src_offset_in_bytes, (zpointer*)src_raw,
145 dst_obj, dst_offset_in_bytes, (zpointer*)dst_raw,
146 length);
147 }
148 static OopCopyResult oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, narrowOop* src_raw,
149 arrayOop dst_obj, size_t dst_offset_in_bytes, narrowOop* dst_raw,
150 size_t length) { unsupported(); }
151
152 static void clone_in_heap(oop src, oop dst, size_t size);
153
154 static void value_copy_in_heap(void* src, void* dst, InlineKlass* md, LayoutKind lk);
155
156 //
157 // Not in heap
158 //
159 static oop oop_load_not_in_heap(zpointer* p);
160 static oop oop_load_not_in_heap(oop* p);
161 static oop oop_load_not_in_heap(narrowOop* p) { unsupported(); return nullptr; }
162
163 static oop oop_atomic_cmpxchg_not_in_heap(zpointer* p, oop compare_value, oop new_value);
164 static oop oop_atomic_cmpxchg_not_in_heap(oop* p, oop compare_value, oop new_value) {
165 return oop_atomic_cmpxchg_not_in_heap((zpointer*)p, compare_value, new_value);
166 }
167 static oop oop_atomic_cmpxchg_not_in_heap(narrowOop* addr, oop compare_value, oop new_value) { unsupported(); return nullptr; }
168
169 static oop oop_atomic_xchg_not_in_heap(zpointer* p, oop new_value);
170 static oop oop_atomic_xchg_not_in_heap(oop* p, oop new_value) { return oop_atomic_xchg_not_in_heap((zpointer*)p, new_value); }
171 static oop oop_atomic_xchg_not_in_heap(narrowOop* p, oop new_value) { unsupported(); return nullptr; }
172 };
173 };
174
175 template<> struct BarrierSet::GetName<ZBarrierSet> {
|