src/hotspot/share/oops/oop.inline.hpp
changeset 59252 623722a6aeb9
parent 59248 e92153ed8bdc
child 59290 97d13893ec3c
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    71 void oopDesc::release_set_mark(markWord m) {
    71 void oopDesc::release_set_mark(markWord m) {
    72   HeapAccess<MO_RELEASE>::store_at(as_oop(), mark_offset_in_bytes(), m.value());
    72   HeapAccess<MO_RELEASE>::store_at(as_oop(), mark_offset_in_bytes(), m.value());
    73 }
    73 }
    74 
    74 
    75 markWord oopDesc::cas_set_mark(markWord new_mark, markWord old_mark) {
    75 markWord oopDesc::cas_set_mark(markWord new_mark, markWord old_mark) {
    76   uintptr_t v = HeapAccess<>::atomic_cmpxchg_at(new_mark.value(), as_oop(), mark_offset_in_bytes(), old_mark.value());
    76   uintptr_t v = HeapAccess<>::atomic_cmpxchg_at(as_oop(), mark_offset_in_bytes(), old_mark.value(), new_mark.value());
    77   return markWord(v);
    77   return markWord(v);
    78 }
    78 }
    79 
    79 
    80 markWord oopDesc::cas_set_mark_raw(markWord new_mark, markWord old_mark, atomic_memory_order order) {
    80 markWord oopDesc::cas_set_mark_raw(markWord new_mark, markWord old_mark, atomic_memory_order order) {
    81   return Atomic::cmpxchg(new_mark, &_mark, old_mark, order);
    81   return Atomic::cmpxchg(&_mark, old_mark, new_mark, order);
    82 }
    82 }
    83 
    83 
    84 void oopDesc::init_mark() {
    84 void oopDesc::init_mark() {
    85   set_mark(markWord::prototype_for_klass(klass()));
    85   set_mark(markWord::prototype_for_klass(klass()));
    86 }
    86 }