Go to the source code of this file.
|
| AO_INLINE int | AO_compare_double_and_swap_double (volatile AO_double_t *addr, AO_t old_val1, AO_t old_val2, AO_t new_val1, AO_t new_val2) |
| |
| AO_INLINE int | AO_compare_double_and_swap_double_acquire (volatile AO_double_t *addr, AO_t old_val1, AO_t old_val2, AO_t new_val1, AO_t new_val2) |
| |
| AO_INLINE int | AO_compare_double_and_swap_double_release (volatile AO_double_t *addr, AO_t old_val1, AO_t old_val2, AO_t new_val1, AO_t new_val2) |
| |
| AO_INLINE int | AO_compare_double_and_swap_double_full (volatile AO_double_t *addr, AO_t old_val1, AO_t old_val2, AO_t new_val1, AO_t new_val2) |
| |
◆ AO_HAVE_compare_double_and_swap_double
| #define AO_HAVE_compare_double_and_swap_double |
◆ AO_HAVE_compare_double_and_swap_double_acquire
| #define AO_HAVE_compare_double_and_swap_double_acquire |
◆ AO_HAVE_compare_double_and_swap_double_full
| #define AO_HAVE_compare_double_and_swap_double_full |
◆ AO_HAVE_compare_double_and_swap_double_release
| #define AO_HAVE_compare_double_and_swap_double_release |
◆ AO_USE_INTERLOCKED_INTRINSICS
| #define AO_USE_INTERLOCKED_INTRINSICS |
◆ AO_compare_double_and_swap_double()
Definition at line 49 of file arm64.h.
52 {
53 __int64 comparandResult[2];
54
56 comparandResult[0] = old_val1;
57 comparandResult[1] = old_val2;
58 return _InterlockedCompareExchange128_nf((volatile __int64 *)addr,
59 new_val2 ,
60 new_val1 ,
61 comparandResult);
62 }
#define AO_ASSERT_ADDR_ALIGNED(addr)
◆ AO_compare_double_and_swap_double_acquire()
Definition at line 66 of file arm64.h.
69 {
70 __int64 comparandResult[2];
71
73 comparandResult[0] = old_val1;
74 comparandResult[1] = old_val2;
75 return _InterlockedCompareExchange128_acq((volatile __int64 *)addr,
76 new_val2 ,
77 new_val1 ,
78 comparandResult);
79 }
◆ AO_compare_double_and_swap_double_full()
Definition at line 100 of file arm64.h.
103 {
104 __int64 comparandResult[2];
105
107 comparandResult[0] = old_val1;
108 comparandResult[1] = old_val2;
109 return _InterlockedCompareExchange128((volatile __int64 *)addr,
110 new_val2 ,
111 new_val1 ,
112 comparandResult);
113 }
◆ AO_compare_double_and_swap_double_release()
Definition at line 83 of file arm64.h.
86 {
87 __int64 comparandResult[2];
88
90 comparandResult[0] = old_val1;
91 comparandResult[1] = old_val2;
92 return _InterlockedCompareExchange128_rel((volatile __int64 *)addr,
93 new_val2 ,
94 new_val1 ,
95 comparandResult);
96 }