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();
