diff --git a/lzhamdecomp/lzham_platform.h b/lzhamdecomp/lzham_platform.h index 01704be..04b29fb 100644 --- a/lzhamdecomp/lzham_platform.h +++ b/lzhamdecomp/lzham_platform.h @@ -24,7 +24,11 @@ void lzham_fail(const char* pExp, const char* pFile, unsigned line); #if defined(__GNUC__) && LZHAM_PLATFORM_PC extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void lzham_yield_processor() { - __asm__ __volatile__("pause"); + #if defined(__AARCH64__) + __asm__ __volatile__("yield"); + #else + __asm__ __volatile__("pause"); + #endif } #elif LZHAM_PLATFORM_X360 #define lzham_yield_processor() \ @@ -48,7 +52,9 @@ extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void lzham_y LZHAM_FORCE_INLINE void lzham_yield_processor() { #if LZHAM_USE_MSVC_INTRINSICS - #if LZHAM_PLATFORM_PC_X64 + #if defined(__AARCH64__) + __yield(); + #elif LZHAM_PLATFORM_PC_X64 _mm_pause(); #else YieldProcessor();