< 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,207 **** --- 198,208 ---- 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,256 **** : [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); #endif } template<> template<typename T> --- 247,257 ---- : [rv] "=&r" (rv), [tmp] "=&r" (tmp) : [ev] "r" (exchange_value), [dest] "r" (dest), [cv] "r" (compare_value) : "memory"); return rv; #else ! return cmpxchg_using_helper<jint>(reorder_cmpxchg_func, exchange_value, dest, compare_value); #endif } template<> template<typename T>
*** 276,285 **** : [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); #endif } #endif // OS_CPU_LINUX_ARM_VM_ATOMIC_LINUX_ARM_HPP --- 277,286 ---- : [rv] "=&r" (rv), [tmp] "=&r" (tmp) : [ev] "r" (exchange_value), [dest] "r" (dest), [cv] "r" (compare_value) : "memory"); return rv; #else ! 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 >