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.
28 lines
1006 B
28 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();
|
|
|