251 }
252
253 template <typename T>
254 static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
255 return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
256 }
257
258 template <typename T>
259 static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr) {
260 return Raw::oop_atomic_xchg(new_value, addr);
261 }
262
263 // Clone barrier support
264 static void clone_in_heap(oop src, oop dst, size_t size) {
265 Raw::clone(src, dst, size);
266 }
267
268 static oop resolve(oop obj) {
269 return Raw::resolve(obj);
270 }
271 };
272 };
273
274 template<typename T>
275 inline T* barrier_set_cast(BarrierSet* bs) {
276 assert(bs->is_a(BarrierSet::GetName<T>::value), "wrong type of barrier set");
277 return static_cast<T*>(bs);
278 }
279
280 #endif // SHARE_VM_GC_SHARED_BARRIERSET_HPP
|
251 }
252
253 template <typename T>
254 static oop oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
255 return Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
256 }
257
258 template <typename T>
259 static oop oop_atomic_xchg_not_in_heap(oop new_value, T* addr) {
260 return Raw::oop_atomic_xchg(new_value, addr);
261 }
262
263 // Clone barrier support
264 static void clone_in_heap(oop src, oop dst, size_t size) {
265 Raw::clone(src, dst, size);
266 }
267
268 static oop resolve(oop obj) {
269 return Raw::resolve(obj);
270 }
271
272 static bool equals(oop o1, oop o2) {
273 return Raw::equals(o1, o2);
274 }
275 };
276 };
277
278 template<typename T>
279 inline T* barrier_set_cast(BarrierSet* bs) {
280 assert(bs->is_a(BarrierSet::GetName<T>::value), "wrong type of barrier set");
281 return static_cast<T*>(bs);
282 }
283
284 #endif // SHARE_VM_GC_SHARED_BARRIERSET_HPP
|