src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp
changeset 59248 e92153ed8bdc
parent 59247 56bf71d64d51
child 59249 29b0d0b61615
equal deleted inserted replaced
59247:56bf71d64d51 59248:e92153ed8bdc
    86 
    86 
    87 template<size_t byte_size>
    87 template<size_t byte_size>
    88 struct Atomic::PlatformOrderedStore<byte_size, RELEASE_X>
    88 struct Atomic::PlatformOrderedStore<byte_size, RELEASE_X>
    89 {
    89 {
    90   template <typename T>
    90   template <typename T>
    91   void operator()(T v, volatile T* p) const { __atomic_store(const_cast<T*>(p), &v, __ATOMIC_RELEASE); }
    91   void operator()(volatile T* p, T v) const { __atomic_store(const_cast<T*>(p), &v, __ATOMIC_RELEASE); }
    92 };
    92 };
    93 
    93 
    94 template<size_t byte_size>
    94 template<size_t byte_size>
    95 struct Atomic::PlatformOrderedStore<byte_size, RELEASE_X_FENCE>
    95 struct Atomic::PlatformOrderedStore<byte_size, RELEASE_X_FENCE>
    96 {
    96 {
    97   template <typename T>
    97   template <typename T>
    98   void operator()(T v, volatile T* p) const { release_store(p, v); OrderAccess::fence(); }
    98   void operator()(volatile T* p, T v) const { release_store(p, v); OrderAccess::fence(); }
    99 };
    99 };
   100 
   100 
   101 #endif // OS_CPU_LINUX_AARCH64_ATOMIC_LINUX_AARCH64_HPP
   101 #endif // OS_CPU_LINUX_AARCH64_ATOMIC_LINUX_AARCH64_HPP