From 15275898f066c5bee802e0f8fb2a6e306d5a8496 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 24 Apr 2026 19:07:17 -0500 Subject: [PATCH] atomic: Use acquire/release InterlockedExchange intrinsics on ARM64EC --- src/atomic/SDL_spinlock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/atomic/SDL_spinlock.c b/src/atomic/SDL_spinlock.c index 3e439ce1c3..3f58d26554 100644 --- a/src/atomic/SDL_spinlock.c +++ b/src/atomic/SDL_spinlock.c @@ -84,7 +84,7 @@ SDL_bool SDL_AtomicTryLock(SDL_SpinLock *lock) #elif defined(HAVE_GCC_ATOMICS) || defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET) return __sync_lock_test_and_set(lock, 1) == 0; -#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC)) return _InterlockedExchange_acq(lock, 1) == 0; #elif defined(_MSC_VER) @@ -189,7 +189,7 @@ void SDL_AtomicUnlock(SDL_SpinLock *lock) #if defined(HAVE_GCC_ATOMICS) || defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET) __sync_lock_release(lock); -#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC)) _InterlockedExchange_rel(lock, 0); #elif defined(_MSC_VER)