< 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 >