< prev index next >

src/share/vm/runtime/atomic.cpp

Print this page
rev 7584 : code minimum

@@ -26,25 +26,24 @@
 #include "runtime/atomic.inline.hpp"
 
 /*
  * This is the default implementation of byte-sized cmpxchg. It emulates jbyte-sized cmpxchg
  * in terms of jint-sized cmpxchg. Platforms may override this by defining their own inline definition
- * as well as defining VM_HAS_SPECIALIZED_CMPXCHG_BYTE. This will cause the platform specific
- * implementation to be used instead.
+ * in their AtomicPlatform class.
  */
-jbyte Atomic::cmpxchg_general(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) {
+jbyte AtomicBase::cmpxchg_general(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) {
   assert(sizeof(jbyte) == 1, "assumption.");
   uintptr_t dest_addr = (uintptr_t)dest;
   uintptr_t offset = dest_addr % sizeof(jint);
   volatile jint* dest_int = (volatile jint*)(dest_addr - offset);
   jint cur = *dest_int;
   jbyte* cur_as_bytes = (jbyte*)(&cur);
   jint new_val = cur;
   jbyte* new_val_as_bytes = (jbyte*)(&new_val);
   new_val_as_bytes[offset] = exchange_value;
   while (cur_as_bytes[offset] == compare_value) {
-    jint res = cmpxchg(new_val, dest_int, cur);
+    jint res = Atomic::cmpxchg(new_val, dest_int, cur);
     if (res == cur) break;
     cur = res;
     new_val = cur;
     new_val_as_bytes[offset] = exchange_value;
   }
< prev index next >