< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp

Print this page

        

*** 129,152 **** } } inline oop ShenandoahHeap::cas_oop(oop n, oop* addr, oop c) { assert(is_aligned(addr, HeapWordSize), "Address should be aligned: " PTR_FORMAT, p2i(addr)); ! return (oop) Atomic::cmpxchg(n, addr, c); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, narrowOop c) { assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop val = CompressedOops::encode(n); ! return CompressedOops::decode((narrowOop) Atomic::cmpxchg(val, addr, c)); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, oop c) { assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop cmp = CompressedOops::encode(c); narrowOop val = CompressedOops::encode(n); ! return CompressedOops::decode((narrowOop) Atomic::cmpxchg(val, addr, cmp)); } template <class T> inline oop ShenandoahHeap::maybe_update_with_forwarded_not_null(T* p, oop heap_oop) { shenandoah_assert_not_in_cset_loc_except(p, !is_in(p) || is_full_gc_in_progress() || is_degenerated_gc_in_progress()); --- 129,152 ---- } } inline oop ShenandoahHeap::cas_oop(oop n, oop* addr, oop c) { assert(is_aligned(addr, HeapWordSize), "Address should be aligned: " PTR_FORMAT, p2i(addr)); ! return (oop) Atomic::cmpxchg(addr, c, n); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, narrowOop c) { assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop val = CompressedOops::encode(n); ! return CompressedOops::decode((narrowOop) Atomic::cmpxchg(addr, c, val)); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, oop c) { assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop cmp = CompressedOops::encode(c); narrowOop val = CompressedOops::encode(n); ! return CompressedOops::decode((narrowOop) Atomic::cmpxchg(addr, cmp, val)); } template <class T> inline oop ShenandoahHeap::maybe_update_with_forwarded_not_null(T* p, oop heap_oop) { shenandoah_assert_not_in_cset_loc_except(p, !is_in(p) || is_full_gc_in_progress() || is_degenerated_gc_in_progress());
< prev index next >