< prev index next >

src/share/vm/oops/oop.inline.hpp

Print this page

        

@@ -90,12 +90,12 @@
 
 void oopDesc::release_set_mark(markOop m) {
   OrderAccess::release_store_ptr(&_mark, m);
 }
 
-markOop oopDesc::cas_set_mark(markOop new_mark, markOop old_mark) {
-  return (markOop) Atomic::cmpxchg_ptr(new_mark, &_mark, old_mark);
+markOop oopDesc::cas_set_mark(markOop new_mark, markOop old_mark, cmpxchg_memory_order order) {
+  return (markOop) Atomic::cmpxchg_ptr(new_mark, &_mark, old_mark, order);
 }
 
 void oopDesc::init_mark() {
   set_mark(markOopDesc::prototype_for_object(this));
 }

@@ -576,18 +576,18 @@
   assert(m->decode_pointer() == p, "encoding must be reversable");
   set_mark(m);
 }
 
 // Used by parallel scavengers
-bool oopDesc::cas_forward_to(oop p, markOop compare) {
+bool oopDesc::cas_forward_to(oop p, markOop compare, cmpxchg_memory_order order) {
   assert(check_obj_alignment(p),
          "forwarding to something not aligned");
   assert(Universe::heap()->is_in_reserved(p),
          "forwarding to something not in heap");
   markOop m = markOopDesc::encode_pointer_as_mark(p);
   assert(m->decode_pointer() == p, "encoding must be reversable");
-  return cas_set_mark(m, compare) == compare;
+  return cas_set_mark(m, compare, order) == compare;
 }
 
 #if INCLUDE_ALL_GCS
 oop oopDesc::forward_to_atomic(oop p) {
   markOop oldMark = mark();
< prev index next >