File indexing completed on 2025-01-30 09:33:57
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef BOOST_ATOMIC_DETAIL_OPS_GCC_AARCH64_COMMON_HPP_INCLUDED_
0015 #define BOOST_ATOMIC_DETAIL_OPS_GCC_AARCH64_COMMON_HPP_INCLUDED_
0016
0017 #include <boost/atomic/detail/config.hpp>
0018 #include <boost/atomic/detail/capabilities.hpp>
0019
0020 #ifdef BOOST_HAS_PRAGMA_ONCE
0021 #pragma once
0022 #endif
0023
0024 #define BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(mo)\
0025 switch (mo)\
0026 {\
0027 case memory_order_relaxed:\
0028 BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN("", "")\
0029 break;\
0030 \
0031 case memory_order_consume:\
0032 case memory_order_acquire:\
0033 BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN("a", "")\
0034 break;\
0035 \
0036 case memory_order_release:\
0037 BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN("", "l")\
0038 break;\
0039 \
0040 default:\
0041 BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN("a", "l")\
0042 break;\
0043 }
0044
0045 #if defined(BOOST_ATOMIC_DETAIL_AARCH64_LITTLE_ENDIAN)
0046 #define BOOST_ATOMIC_DETAIL_AARCH64_ASM_ARG_LO "0"
0047 #define BOOST_ATOMIC_DETAIL_AARCH64_ASM_ARG_HI "1"
0048 #else
0049 #define BOOST_ATOMIC_DETAIL_AARCH64_ASM_ARG_LO "1"
0050 #define BOOST_ATOMIC_DETAIL_AARCH64_ASM_ARG_HI "0"
0051 #endif
0052
0053 #endif