239
240 // return the print strings
241 char* print_string();
242 char* print_value_string();
243
244 // verification operations
245 static void verify_on(outputStream* st, oopDesc* oop_desc);
246 static void verify(oopDesc* oopDesc);
247
248 // locking operations
249 inline bool is_locked() const;
250 inline bool is_unlocked() const;
251 inline bool has_bias_pattern() const;
252 inline bool has_bias_pattern_raw() const;
253
254 // asserts and guarantees
255 static bool is_oop(oop obj, bool ignore_mark_word = false);
256 static bool is_oop_or_null(oop obj, bool ignore_mark_word = false);
257 #ifndef PRODUCT
258 inline bool is_unlocked_oop() const;
259 static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
260 #endif
261
262 // garbage collection
263 inline bool is_gc_marked() const;
264
265 // Forward pointer operations for scavenge
266 inline bool is_forwarded() const;
267
268 inline void forward_to(oop p);
269 inline bool cas_forward_to(oop p, markOop compare, atomic_memory_order order = memory_order_conservative);
270
271 // Like "forward_to", but inserts the forwarding pointer atomically.
272 // Exactly one thread succeeds in inserting the forwarding pointer, and
273 // this call returns "NULL" for that thread; any other thread has the
274 // value of the forwarding pointer returned and does not modify "this".
275 inline oop forward_to_atomic(oop p, atomic_memory_order order = memory_order_conservative);
276
277 inline oop forwardee() const;
278 inline oop forwardee_acquire() const;
279
|
239
240 // return the print strings
241 char* print_string();
242 char* print_value_string();
243
244 // verification operations
245 static void verify_on(outputStream* st, oopDesc* oop_desc);
246 static void verify(oopDesc* oopDesc);
247
248 // locking operations
249 inline bool is_locked() const;
250 inline bool is_unlocked() const;
251 inline bool has_bias_pattern() const;
252 inline bool has_bias_pattern_raw() const;
253
254 // asserts and guarantees
255 static bool is_oop(oop obj, bool ignore_mark_word = false);
256 static bool is_oop_or_null(oop obj, bool ignore_mark_word = false);
257 #ifndef PRODUCT
258 inline bool is_unlocked_oop() const;
259 static bool is_archived_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
260 #endif
261
262 // garbage collection
263 inline bool is_gc_marked() const;
264
265 // Forward pointer operations for scavenge
266 inline bool is_forwarded() const;
267
268 inline void forward_to(oop p);
269 inline bool cas_forward_to(oop p, markOop compare, atomic_memory_order order = memory_order_conservative);
270
271 // Like "forward_to", but inserts the forwarding pointer atomically.
272 // Exactly one thread succeeds in inserting the forwarding pointer, and
273 // this call returns "NULL" for that thread; any other thread has the
274 // value of the forwarding pointer returned and does not modify "this".
275 inline oop forward_to_atomic(oop p, atomic_memory_order order = memory_order_conservative);
276
277 inline oop forwardee() const;
278 inline oop forwardee_acquire() const;
279
|