< prev index next >

src/hotspot/share/oops/oop.hpp

Print this page
rev 49289 : 8199735: Mark word updates need to use Access API

*** 61,81 **** Klass* _klass; narrowKlass _compressed_klass; } _metadata; public: ! markOop mark() const { return _mark; } ! markOop* mark_addr() const { return (markOop*) &_mark; } ! void set_mark(volatile markOop m) { _mark = m; } inline void release_set_mark(markOop m); inline markOop cas_set_mark(markOop new_mark, markOop old_mark); // Used only to re-initialize the mark word (e.g., of promoted // objects during a GC) -- requires a valid klass pointer inline void init_mark(); inline Klass* klass() const; inline Klass* klass_or_null() const volatile; inline Klass* klass_or_null_acquire() const volatile; inline Klass** klass_addr(); --- 61,85 ---- Klass* _klass; narrowKlass _compressed_klass; } _metadata; public: ! inline markOop mark() const; ! inline markOop mark_raw() const; ! inline markOop* mark_addr_raw() const; ! inline void set_mark(volatile markOop m); ! inline void set_mark_raw(volatile markOop m); inline void release_set_mark(markOop m); inline markOop cas_set_mark(markOop new_mark, markOop old_mark); + inline markOop cas_set_mark_raw(markOop new_mark, markOop old_mark); // Used only to re-initialize the mark word (e.g., of promoted // objects during a GC) -- requires a valid klass pointer inline void init_mark(); + inline void init_mark_raw(); inline Klass* klass() const; inline Klass* klass_or_null() const volatile; inline Klass* klass_or_null_acquire() const volatile; inline Klass** klass_addr();
*** 271,280 **** --- 275,285 ---- // locking operations inline bool is_locked() const; inline bool is_unlocked() const; inline bool has_bias_pattern() const; + inline bool has_bias_pattern_raw() const; // asserts and guarantees static bool is_oop(oop obj, bool ignore_mark_word = false); static bool is_oop_or_null(oop obj, bool ignore_mark_word = false); #ifndef PRODUCT
*** 355,367 **** // Alternate hashing code if string table is rehashed unsigned int new_hash(juint seed); // marks are forwarded to stack when object is locked ! inline bool has_displaced_mark() const; ! inline markOop displaced_mark() const; ! inline void set_displaced_mark(markOop m); static bool has_klass_gap(); // for code generation static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); } --- 360,372 ---- // Alternate hashing code if string table is rehashed unsigned int new_hash(juint seed); // marks are forwarded to stack when object is locked ! inline bool has_displaced_mark_raw() const; ! inline markOop displaced_mark_raw() const; ! inline void set_displaced_mark_raw(markOop m); static bool has_klass_gap(); // for code generation static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); }
< prev index next >