219 static T atomic_cmpxchg_in_heap_at(T new_value, oop base, ptrdiff_t offset, T compare_value) { |
219 static T atomic_cmpxchg_in_heap_at(T new_value, oop base, ptrdiff_t offset, T compare_value) { |
220 return Raw::atomic_cmpxchg_at(new_value, base, offset, compare_value); |
220 return Raw::atomic_cmpxchg_at(new_value, base, offset, compare_value); |
221 } |
221 } |
222 |
222 |
223 template <typename T> |
223 template <typename T> |
224 static T atomic_xchg_in_heap(T new_value, T* addr) { |
224 static T atomic_xchg_in_heap(T* addr, T new_value) { |
225 return Raw::atomic_xchg(new_value, addr); |
225 return Raw::atomic_xchg(addr, new_value); |
226 } |
226 } |
227 |
227 |
228 template <typename T> |
228 template <typename T> |
229 static T atomic_xchg_in_heap_at(T new_value, oop base, ptrdiff_t offset) { |
229 static T atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, T new_value) { |
230 return Raw::atomic_xchg_at(new_value, base, offset); |
230 return Raw::atomic_xchg_at(base, offset, new_value); |
231 } |
231 } |
232 |
232 |
233 template <typename T> |
233 template <typename T> |
234 static void arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, |
234 static void arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, |
235 arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, |
235 arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, |
268 static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value) { |
268 static oop oop_atomic_cmpxchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset, oop compare_value) { |
269 return Raw::oop_atomic_cmpxchg_at(new_value, base, offset, compare_value); |
269 return Raw::oop_atomic_cmpxchg_at(new_value, base, offset, compare_value); |
270 } |
270 } |
271 |
271 |
272 template <typename T> |
272 template <typename T> |
273 static oop oop_atomic_xchg_in_heap(oop new_value, T* addr) { |
273 static oop oop_atomic_xchg_in_heap(T* addr, oop new_value) { |
274 return Raw::oop_atomic_xchg(new_value, addr); |
274 return Raw::oop_atomic_xchg(addr, new_value); |
275 } |
275 } |
276 |
276 |
277 static oop oop_atomic_xchg_in_heap_at(oop new_value, oop base, ptrdiff_t offset) { |
277 static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value) { |
278 return Raw::oop_atomic_xchg_at(new_value, base, offset); |
278 return Raw::oop_atomic_xchg_at(base, offset, new_value); |
279 } |
279 } |
280 |
280 |
281 template <typename T> |
281 template <typename T> |
282 static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, |
282 static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, |
283 arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, |
283 arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, |
300 static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) { |
300 static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) { |
301 return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value); |
301 return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value); |
302 } |
302 } |
303 |
303 |
304 template <typename T> |
304 template <typename T> |
305 static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr) { |
305 static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value) { |
306 return Raw::oop_atomic_xchg(new_value, addr); |
306 return Raw::oop_atomic_xchg(addr, new_value); |
307 } |
307 } |
308 |
308 |
309 // Clone barrier support |
309 // Clone barrier support |
310 static void clone_in_heap(oop src, oop dst, size_t size) { |
310 static void clone_in_heap(oop src, oop dst, size_t size) { |
311 Raw::clone(src, dst, size); |
311 Raw::clone(src, dst, size); |