Просмотр исходного кода

atomic: Use acquire/release InterlockedExchange intrinsics on ARM64EC

(cherry picked from commit 0220a41a2eba0eddddf0b449272c03c3439838c3)
Cameron Gutman 2 недель назад
Родитель
Сommit
604a4dfa69
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      src/atomic/SDL_spinlock.c

+ 2 - 2
src/atomic/SDL_spinlock.c

@@ -50,7 +50,7 @@ bool SDL_TryLockSpinlock(SDL_SpinLock *lock)
 #if 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))
     SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
     return _InterlockedExchange_acq((long *)lock, 1) == 0;
 
@@ -167,7 +167,7 @@ void SDL_UnlockSpinlock(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))
     SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
     _InterlockedExchange_rel((long *)lock, 0);