< prev index next >

src/share/vm/oops/oop.inline.hpp

Print this page

        

*** 90,101 **** void oopDesc::release_set_mark(markOop m) { OrderAccess::release_store_ptr(&_mark, m); } ! markOop oopDesc::cas_set_mark(markOop new_mark, markOop old_mark) { ! return (markOop) Atomic::cmpxchg_ptr(new_mark, &_mark, old_mark); } void oopDesc::init_mark() { set_mark(markOopDesc::prototype_for_object(this)); } --- 90,101 ---- void oopDesc::release_set_mark(markOop m) { OrderAccess::release_store_ptr(&_mark, m); } ! markOop oopDesc::cas_set_mark(markOop new_mark, markOop old_mark, cmpxchg_memory_order order) { ! return (markOop) Atomic::cmpxchg_ptr(new_mark, &_mark, old_mark, order); } void oopDesc::init_mark() { set_mark(markOopDesc::prototype_for_object(this)); }
*** 576,593 **** assert(m->decode_pointer() == p, "encoding must be reversable"); set_mark(m); } // Used by parallel scavengers ! bool oopDesc::cas_forward_to(oop p, markOop compare) { assert(check_obj_alignment(p), "forwarding to something not aligned"); assert(Universe::heap()->is_in_reserved(p), "forwarding to something not in heap"); markOop m = markOopDesc::encode_pointer_as_mark(p); assert(m->decode_pointer() == p, "encoding must be reversable"); ! return cas_set_mark(m, compare) == compare; } #if INCLUDE_ALL_GCS oop oopDesc::forward_to_atomic(oop p) { markOop oldMark = mark(); --- 576,593 ---- assert(m->decode_pointer() == p, "encoding must be reversable"); set_mark(m); } // Used by parallel scavengers ! bool oopDesc::cas_forward_to(oop p, markOop compare, cmpxchg_memory_order order) { assert(check_obj_alignment(p), "forwarding to something not aligned"); assert(Universe::heap()->is_in_reserved(p), "forwarding to something not in heap"); markOop m = markOopDesc::encode_pointer_as_mark(p); assert(m->decode_pointer() == p, "encoding must be reversable"); ! return cas_set_mark(m, compare, order) == compare; } #if INCLUDE_ALL_GCS oop oopDesc::forward_to_atomic(oop p) { markOop oldMark = mark();
< prev index next >