Skip to content

Commit

Permalink
MSVC sets _M_X64 for AMD64, not _M_IX64
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Sep 23, 2024
1 parent 5a79acb commit 5fa8003
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions atomic_sync/atomic_mutex.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ void mutex_storage<T>::lock_wait() noexcept
#else
m.wait(lk);
#endif
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
reload:
#endif
lk = m.load(std::memory_order_relaxed);
}
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
else
{
# ifdef _MSC_VER
Expand Down Expand Up @@ -124,8 +124,8 @@ void mutex_storage<T>::spin_lock_wait(unsigned spin_rounds) noexcept
lk = m.load(std::memory_order_relaxed);
if (!(lk & HOLDER))
{
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
lk |= HOLDER;
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
lk += HOLDER;
# ifdef _MSC_VER
static_assert(HOLDER == (1U << 0), "compatibility");
if (!_interlockedbittestandset
Expand Down Expand Up @@ -153,14 +153,14 @@ void mutex_storage<T>::spin_lock_wait(unsigned spin_rounds) noexcept
#else
m.wait(lk);
#endif
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
reload:
#endif
lk = m.load(std::memory_order_relaxed);
}
else
{
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
# ifdef _MSC_VER
static_assert(HOLDER == (1U << 0), "compatibility");
if (_interlockedbittestandset
Expand Down
2 changes: 1 addition & 1 deletion atomic_sync/atomic_shared_mutex.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class shared_mutex_storage
@retval 0 if the exclusive lock was granted */
type lock_inner() noexcept
{
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_IX64
#if defined __i386__||defined __x86_64__||defined _M_IX86||defined _M_X64
static_assert(X == 1U << 31, "compatibility");
/* On IA-32 and AMD64, a fetch_XXX() that needs to return the
previous value of the word state can only be implemented
Expand Down

0 comments on commit 5fa8003

Please sign in to comment.