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