< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp

Print this page

        

@@ -72,19 +72,19 @@
 
   bool try_set() {
     if (is_set()) {
       return false;
     }
-    ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)SET, &value, (ShenandoahSharedValue)UNSET);
+    ShenandoahSharedValue old = Atomic::cmpxchg(&value, (ShenandoahSharedValue)UNSET, (ShenandoahSharedValue)SET);
     return old == UNSET; // success
   }
 
   bool try_unset() {
     if (!is_set()) {
       return false;
     }
-    ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)UNSET, &value, (ShenandoahSharedValue)SET);
+    ShenandoahSharedValue old = Atomic::cmpxchg(&value, (ShenandoahSharedValue)SET, (ShenandoahSharedValue)UNSET);
     return old == SET; // success
   }
 
   volatile ShenandoahSharedValue* addr_of() {
     return &value;

@@ -123,11 +123,11 @@
         // already set
         return;
       }
 
       ShenandoahSharedValue nv = ov | mask_val;
-      if (Atomic::cmpxchg(nv, &value, ov) == ov) {
+      if (Atomic::cmpxchg(&value, ov, nv) == ov) {
         // successfully set
         return;
       }
     }
   }

@@ -141,11 +141,11 @@
         // already unset
         return;
       }
 
       ShenandoahSharedValue nv = ov & ~mask_val;
-      if (Atomic::cmpxchg(nv, &value, ov) == ov) {
+      if (Atomic::cmpxchg(&value, ov, nv) == ov) {
         // successfully unset
         return;
       }
     }
   }

@@ -219,11 +219,11 @@
   }
 
   T cmpxchg(T new_value, T expected) {
     assert (new_value >= 0, "sanity");
     assert (new_value < (sizeof(ShenandoahSharedValue) * CHAR_MAX), "sanity");
-    return (T)Atomic::cmpxchg((ShenandoahSharedValue)new_value, &value, (ShenandoahSharedValue)expected);
+    return (T)Atomic::cmpxchg(&value, (ShenandoahSharedValue)expected, (ShenandoahSharedValue)new_value);
   }
 
   volatile ShenandoahSharedValue* addr_of() {
     return &value;
   }
< prev index next >