package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1006 B

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