diff --git a/include/SDL3/SDL_atomic.h b/include/SDL3/SDL_atomic.h index 3c7cd7d057..5e507f66ad 100644 --- a/include/SDL3/SDL_atomic.h +++ b/include/SDL3/SDL_atomic.h @@ -244,6 +244,8 @@ typedef void (*SDL_KernelMemoryBarrierFunc)(); #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory") #elif (defined(__powerpc__) || defined(__powerpc64__)) #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27"); +#elif (defined(__riscv) && __riscv_xlen == 64) + #define SDL_CPUPauseInstruction() __asm__ __volatile__(".insn i 0x0F, 0, x0, x0, 0x010"); #elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) #define SDL_CPUPauseInstruction() _mm_pause() /* this is actually "rep nop" and not a SIMD instruction. No inline asm in MSVC x86-64! */ #elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))