< prev index next >

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

Print this page

        

*** 59,69 **** void oopDesc::set_mark(markWord m) { HeapAccess<MO_VOLATILE>::store_at(as_oop(), mark_offset_in_bytes(), m.value()); } void oopDesc::set_mark_raw(markWord m) { ! Atomic::store(m, &_mark); } void oopDesc::set_mark_raw(HeapWord* mem, markWord m) { *(markWord*)(((char*)mem) + mark_offset_in_bytes()) = m; } --- 59,69 ---- void oopDesc::set_mark(markWord m) { HeapAccess<MO_VOLATILE>::store_at(as_oop(), mark_offset_in_bytes(), m.value()); } void oopDesc::set_mark_raw(markWord m) { ! Atomic::store(&_mark, m); } void oopDesc::set_mark_raw(HeapWord* mem, markWord m) { *(markWord*)(((char*)mem) + mark_offset_in_bytes()) = m; }
*** 71,86 **** void oopDesc::release_set_mark(markWord m) { HeapAccess<MO_RELEASE>::store_at(as_oop(), mark_offset_in_bytes(), m.value()); } markWord oopDesc::cas_set_mark(markWord new_mark, markWord old_mark) { ! uintptr_t v = HeapAccess<>::atomic_cmpxchg_at(new_mark.value(), as_oop(), mark_offset_in_bytes(), old_mark.value()); return markWord(v); } markWord oopDesc::cas_set_mark_raw(markWord new_mark, markWord old_mark, atomic_memory_order order) { ! return Atomic::cmpxchg(new_mark, &_mark, old_mark, order); } void oopDesc::init_mark() { set_mark(markWord::prototype_for_klass(klass())); } --- 71,86 ---- void oopDesc::release_set_mark(markWord m) { HeapAccess<MO_RELEASE>::store_at(as_oop(), mark_offset_in_bytes(), m.value()); } markWord oopDesc::cas_set_mark(markWord new_mark, markWord old_mark) { ! uintptr_t v = HeapAccess<>::atomic_cmpxchg_at(as_oop(), mark_offset_in_bytes(), old_mark.value(), new_mark.value()); return markWord(v); } markWord oopDesc::cas_set_mark_raw(markWord new_mark, markWord old_mark, atomic_memory_order order) { ! return Atomic::cmpxchg(&_mark, old_mark, new_mark, order); } void oopDesc::init_mark() { set_mark(markWord::prototype_for_klass(klass())); }
< prev index next >