From dba9979f440c28e55cc4cef233050ebcd6e2419d Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 19 Nov 2017 23:36:54 -0800 Subject: [PATCH] Added support for aarch64 memory barrier instruction --- include/SDL_atomic.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/SDL_atomic.h b/include/SDL_atomic.h index 36e37f3b78684..4475939bbd998 100644 --- a/include/SDL_atomic.h +++ b/include/SDL_atomic.h @@ -158,6 +158,9 @@ extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); #if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") +#elif defined(__GNUC__) && defined(__aarch64__) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") #elif defined(__GNUC__) && defined(__arm__) #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory")