< prev index next >

src/os_cpu/linux_arm/vm/atomic_linux_arm.hpp

Print this page
rev 13452 : [mq]: coleen_review1
rev 13458 : imported patch cmpxchg_using_helper

@@ -198,10 +198,11 @@
   return (void*)xchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest);
 }
 
 // The memory_order parameter is ignored - we always provide the strongest/most-conservative ordering
 
+// No direct support for cmpxchg of bytes; emulate using int.
 template<>
 struct Atomic::PlatformCmpxchg<1> : Atomic::CmpxchgByteUsingInt {};
 
 #ifndef AARCH64
 

@@ -246,11 +247,11 @@
     : [rv] "=&r" (rv), [tmp] "=&r" (tmp)
     : [ev] "r" (exchange_value), [dest] "r" (dest), [cv] "r" (compare_value)
     : "memory");
   return rv;
 #else
-  return cmpxchg_using_stub<jint>(reorder_cmpxchg_func, exchange_value, dest, compare_value);
+  return cmpxchg_using_helper<jint>(reorder_cmpxchg_func, exchange_value, dest, compare_value);
 #endif
 }
 
 template<>
 template<typename T>

@@ -276,10 +277,10 @@
     : [rv] "=&r" (rv), [tmp] "=&r" (tmp)
     : [ev] "r" (exchange_value), [dest] "r" (dest), [cv] "r" (compare_value)
     : "memory");
   return rv;
 #else
-  return cmpxchg_using_stub<jlong>(reorder_cmpxchg_long_func, exchange_value, dest, compare_value);
+  return cmpxchg_using_helper<jlong>(reorder_cmpxchg_long_func, exchange_value, dest, compare_value);
 #endif
 }
 
 #endif // OS_CPU_LINUX_ARM_VM_ATOMIC_LINUX_ARM_HPP
< prev index next >