< prev index next >

src/hotspot/os_cpu/solaris_x86/atomic_solaris_x86.hpp

Print this page

        

*** 102,140 **** // inline assembly, but attempting to do so with Studio 12.4 ran into // segfaults. template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<1>::operator()(T exchange_value, ! T volatile* dest, T compare_value, atomic_memory_order order) const { STATIC_ASSERT(1 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg_byte(PrimitiveConversions::cast<int8_t>(exchange_value), reinterpret_cast<int8_t volatile*>(dest), PrimitiveConversions::cast<int8_t>(compare_value))); } template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<4>::operator()(T exchange_value, ! T volatile* dest, T compare_value, atomic_memory_order order) const { STATIC_ASSERT(4 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg(PrimitiveConversions::cast<int32_t>(exchange_value), reinterpret_cast<int32_t volatile*>(dest), PrimitiveConversions::cast<int32_t>(compare_value))); } template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<8>::operator()(T exchange_value, ! T volatile* dest, T compare_value, atomic_memory_order order) const { STATIC_ASSERT(8 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg_long(PrimitiveConversions::cast<int64_t>(exchange_value), reinterpret_cast<int64_t volatile*>(dest), --- 102,140 ---- // inline assembly, but attempting to do so with Studio 12.4 ran into // segfaults. template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<1>::operator()(T volatile* dest, T compare_value, + T exchange_value, atomic_memory_order order) const { STATIC_ASSERT(1 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg_byte(PrimitiveConversions::cast<int8_t>(exchange_value), reinterpret_cast<int8_t volatile*>(dest), PrimitiveConversions::cast<int8_t>(compare_value))); } template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<4>::operator()(T volatile* dest, T compare_value, + T exchange_value, atomic_memory_order order) const { STATIC_ASSERT(4 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg(PrimitiveConversions::cast<int32_t>(exchange_value), reinterpret_cast<int32_t volatile*>(dest), PrimitiveConversions::cast<int32_t>(compare_value))); } template<> template<typename T> ! inline T Atomic::PlatformCmpxchg<8>::operator()(T volatile* dest, T compare_value, + T exchange_value, atomic_memory_order order) const { STATIC_ASSERT(8 == sizeof(T)); return PrimitiveConversions::cast<T>( _Atomic_cmpxchg_long(PrimitiveConversions::cast<int64_t>(exchange_value), reinterpret_cast<int64_t volatile*>(dest),
< prev index next >