src/hotspot/os_cpu/linux_zero/atomic_linux_zero.hpp
changeset 59252 623722a6aeb9
parent 59251 4cbfa5077d68
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    91 template<>
    91 template<>
    92 struct Atomic::PlatformCmpxchg<1> : Atomic::CmpxchgByteUsingInt {};
    92 struct Atomic::PlatformCmpxchg<1> : Atomic::CmpxchgByteUsingInt {};
    93 
    93 
    94 template<>
    94 template<>
    95 template<typename T>
    95 template<typename T>
    96 inline T Atomic::PlatformCmpxchg<4>::operator()(T exchange_value,
    96 inline T Atomic::PlatformCmpxchg<4>::operator()(T volatile* dest,
    97                                                 T volatile* dest,
       
    98                                                 T compare_value,
    97                                                 T compare_value,
       
    98                                                 T exchange_value,
    99                                                 atomic_memory_order order) const {
    99                                                 atomic_memory_order order) const {
   100   STATIC_ASSERT(4 == sizeof(T));
   100   STATIC_ASSERT(4 == sizeof(T));
   101   return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
   101   return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
   102 }
   102 }
   103 
   103 
   104 template<>
   104 template<>
   105 template<typename T>
   105 template<typename T>
   106 inline T Atomic::PlatformCmpxchg<8>::operator()(T exchange_value,
   106 inline T Atomic::PlatformCmpxchg<8>::operator()(T volatile* dest,
   107                                                 T volatile* dest,
       
   108                                                 T compare_value,
   107                                                 T compare_value,
       
   108                                                 T exchange_value,
   109                                                 atomic_memory_order order) const {
   109                                                 atomic_memory_order order) const {
   110   STATIC_ASSERT(8 == sizeof(T));
   110   STATIC_ASSERT(8 == sizeof(T));
   111   return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
   111   return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
   112 }
   112 }
   113 
   113