From 26616cd653646ef59cff726648a7f51d8dcb19ae Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 24 Apr 2026 20:22:25 -0500 Subject: [PATCH] atomic: Fix memory barriers on MSVC ARM32/ARM64 --- include/SDL_atomic.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/SDL_atomic.h b/include/SDL_atomic.h index 970ec97dc7..0148290443 100644 --- a/include/SDL_atomic.h +++ b/include/SDL_atomic.h @@ -183,6 +183,14 @@ extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); #elif defined(__GNUC__) && defined(__aarch64__) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ishld" : : : "memory") +#elif defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC)) +#include +#define SDL_MemoryBarrierRelease() __dmb(_ARM64_BARRIER_ISH) +#define SDL_MemoryBarrierAcquire() __dmb(_ARM64_BARRIER_ISHLD) +#elif defined(_MSC_VER) && defined(_M_ARM) +#include +#define SDL_MemoryBarrierRelease() __dmb(_ARM_BARRIER_ISH) +#define SDL_MemoryBarrierAcquire() __dmb(_ARM_BARRIER_ISH) #elif defined(__GNUC__) && defined(__arm__) #if 0 /* defined(__LINUX__) || defined(__ANDROID__) */ /* Information from: