71 inline void set_mark_raw(volatile markOop m); 72 static inline void set_mark_raw(HeapWord* mem, markOop m); 73 74 inline void release_set_mark(markOop m); 75 inline markOop cas_set_mark(markOop new_mark, markOop old_mark); 76 inline markOop cas_set_mark_raw(markOop new_mark, markOop old_mark, atomic_memory_order order = memory_order_conservative); 77 78 // Used only to re-initialize the mark word (e.g., of promoted 79 // objects during a GC) -- requires a valid klass pointer 80 inline void init_mark(); 81 inline void init_mark_raw(); 82 83 inline Klass* klass() const; 84 inline Klass* klass_or_null() const volatile; 85 inline Klass* klass_or_null_acquire() const volatile; 86 static inline Klass** klass_addr(HeapWord* mem); 87 static inline narrowKlass* compressed_klass_addr(HeapWord* mem); 88 inline Klass** klass_addr(); 89 inline narrowKlass* compressed_klass_addr(); 90 91 // oop only test (does not load klass) 92 inline bool klass_is_value_type(); 93 94 inline void set_klass(Klass* k); 95 static inline void release_set_klass(HeapWord* mem, Klass* klass); 96 97 // For klass field compression 98 inline int klass_gap() const; 99 inline void set_klass_gap(int z); 100 static inline void set_klass_gap(HeapWord* mem, int z); 101 // For when the klass pointer is being used as a linked list "next" field. 102 inline void set_klass_to_list_ptr(oop k); 103 inline oop list_ptr_from_klass(); 104 105 // size of object header, aligned to platform wordSize 106 static int header_size() { return sizeof(oopDesc)/HeapWordSize; } 107 108 // Returns whether this is an instance of k or an instance of a subclass of k 109 inline bool is_a(Klass* k) const; 110 111 // Returns the actual oop size of the object 112 inline int size(); 113 | 71 inline void set_mark_raw(volatile markOop m); 72 static inline void set_mark_raw(HeapWord* mem, markOop m); 73 74 inline void release_set_mark(markOop m); 75 inline markOop cas_set_mark(markOop new_mark, markOop old_mark); 76 inline markOop cas_set_mark_raw(markOop new_mark, markOop old_mark, atomic_memory_order order = memory_order_conservative); 77 78 // Used only to re-initialize the mark word (e.g., of promoted 79 // objects during a GC) -- requires a valid klass pointer 80 inline void init_mark(); 81 inline void init_mark_raw(); 82 83 inline Klass* klass() const; 84 inline Klass* klass_or_null() const volatile; 85 inline Klass* klass_or_null_acquire() const volatile; 86 static inline Klass** klass_addr(HeapWord* mem); 87 static inline narrowKlass* compressed_klass_addr(HeapWord* mem); 88 inline Klass** klass_addr(); 89 inline narrowKlass* compressed_klass_addr(); 90 91 inline void set_klass(Klass* k); 92 static inline void release_set_klass(HeapWord* mem, Klass* klass); 93 94 // For klass field compression 95 inline int klass_gap() const; 96 inline void set_klass_gap(int z); 97 static inline void set_klass_gap(HeapWord* mem, int z); 98 // For when the klass pointer is being used as a linked list "next" field. 99 inline void set_klass_to_list_ptr(oop k); 100 inline oop list_ptr_from_klass(); 101 102 // size of object header, aligned to platform wordSize 103 static int header_size() { return sizeof(oopDesc)/HeapWordSize; } 104 105 // Returns whether this is an instance of k or an instance of a subclass of k 106 inline bool is_a(Klass* k) const; 107 108 // Returns the actual oop size of the object 109 inline int size(); 110 |