@@ -354,9 +354,9 @@ struct _Atomic_storage_traits { // properties for how _Ty is stored in an atomic
354354 : sizeof(_Ty) == 2 ? 2
355355 : sizeof(_Ty) <= 4 ? 4
356356 : sizeof(_Ty) <= 8 ? 8
357- #if defined(_M_X64) || defined(_M_ARM64) || defined(_M_ARM64EC)
357+ #ifdef _WIN64
358358 : sizeof(_Ty) <= 16 ? 16
359- #endif // 64 bits
359+ #endif // ^^^ 64-bit ^^^
360360 : sizeof(_Ty);
361361
362362 static constexpr size_t _Padding_size = _Storage_size - sizeof(_Ty);
@@ -515,7 +515,7 @@ inline bool __stdcall _Atomic_wait_compare_16_bytes(const void* _Storage, void*
515515 return _InterlockedCompareExchange128_nf(_Dest, _Tmp[1], _Tmp[0], _Tmp) != 0;
516516#endif // ^^^ ARM64, _M_ARM64EC ^^^
517517}
518- #endif // _WIN64
518+ #endif // ^^^ 64-bit ^^^
519519#endif // _HAS_CXX20
520520#endif // TRANSITION, ABI
521521
@@ -1295,7 +1295,7 @@ struct _Atomic_storage<_Ty&, 16> { // lock-free using 16-byte intrinsics
12951295
12961296 typename _Atomic_storage_types<_Ty&>::_TStorage _Storage;
12971297};
1298- #endif // defined(_WIN64)
1298+ #endif // ^^^ 64-bit ^^^
12991299
13001300template <class _Ty, size_t = sizeof(_Ty)>
13011301struct _Atomic_integral; // not defined
@@ -1942,13 +1942,13 @@ struct _Atomic_pointer : _Atomic_storage<_Ty> {
19421942 const ptrdiff_t _Shift_bytes =
19431943 static_cast<ptrdiff_t>(static_cast<size_t>(_Diff) * sizeof(remove_pointer_t<_Ty>));
19441944 ptrdiff_t _Result;
1945- #if defined(_M_IX86)
1946- _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd,
1947- _STD _Atomic_address_as<long>(this->_Storage), _Shift_bytes);
1948- #else // ^^^ 32 bits / 64 bits vvv
1945+ #ifdef _WIN64
19491946 _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd64,
19501947 _STD _Atomic_address_as<long long>(this->_Storage), _Shift_bytes);
1951- #endif // ^^^ 64 bits ^^^
1948+ #else // ^^^ 64-bit / 32-bit vvv
1949+ _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd,
1950+ _STD _Atomic_address_as<long>(this->_Storage), _Shift_bytes);
1951+ #endif // ^^^ 32-bit ^^^
19521952 return reinterpret_cast<_Ty>(_Result);
19531953 }
19541954
@@ -2040,13 +2040,13 @@ struct _Atomic_pointer<_Ty&> : _Atomic_storage<_Ty&> {
20402040 const ptrdiff_t _Shift_bytes =
20412041 static_cast<ptrdiff_t>(static_cast<size_t>(_Diff) * sizeof(remove_pointer_t<_Ty>));
20422042 ptrdiff_t _Result;
2043- #if defined(_M_IX86)
2044- _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd,
2045- _STD _Atomic_address_as<long>(this->_Storage), _Shift_bytes);
2046- #else // ^^^ 32 bits / 64 bits vvv
2043+ #ifdef _WIN64
20472044 _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd64,
20482045 _STD _Atomic_address_as<long long>(this->_Storage), _Shift_bytes);
2049- #endif // ^^^ 64 bits ^^^
2046+ #else // ^^^ 64-bit / 32-bit vvv
2047+ _ATOMIC_CHOOSE_INTRINSIC(static_cast<unsigned int>(_Order), _Result, _InterlockedExchangeAdd,
2048+ _STD _Atomic_address_as<long>(this->_Storage), _Shift_bytes);
2049+ #endif // ^^^ 32-bit ^^^
20502050 return reinterpret_cast<_TVal>(_Result);
20512051 }
20522052
0 commit comments