fix_arm64.patch 1006 B

12345678910111213141516171819202122232425262728
  1. diff --git a/lzhamdecomp/lzham_platform.h b/lzhamdecomp/lzham_platform.h
  2. index 01704be..04b29fb 100644
  3. --- a/lzhamdecomp/lzham_platform.h
  4. +++ b/lzhamdecomp/lzham_platform.h
  5. @@ -24,7 +24,11 @@ void lzham_fail(const char* pExp, const char* pFile, unsigned line);
  6. #if defined(__GNUC__) && LZHAM_PLATFORM_PC
  7. extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void lzham_yield_processor()
  8. {
  9. - __asm__ __volatile__("pause");
  10. + #if defined(__AARCH64__)
  11. + __asm__ __volatile__("yield");
  12. + #else
  13. + __asm__ __volatile__("pause");
  14. + #endif
  15. }
  16. #elif LZHAM_PLATFORM_X360
  17. #define lzham_yield_processor() \
  18. @@ -48,7 +52,9 @@ extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void lzham_y
  19. LZHAM_FORCE_INLINE void lzham_yield_processor()
  20. {
  21. #if LZHAM_USE_MSVC_INTRINSICS
  22. - #if LZHAM_PLATFORM_PC_X64
  23. + #if defined(__AARCH64__)
  24. + __yield();
  25. + #elif LZHAM_PLATFORM_PC_X64
  26. _mm_pause();
  27. #else
  28. YieldProcessor();