mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-23 08:44:04 +02:00
Update ma_yield().
This commit is contained in:
+17
-4
@@ -8254,15 +8254,28 @@ static MA_INLINE void ma_yield()
|
|||||||
#ifdef MA_POSIX
|
#ifdef MA_POSIX
|
||||||
posix_yield();
|
posix_yield();
|
||||||
#else
|
#else
|
||||||
#if defined(MA_X86) || defined(MA_X64)
|
#if defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64)
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
/* x86/x64 */
|
||||||
|
#if defined(_MSC_VER) && !defined(__clang__)
|
||||||
|
#if _MSC_VER >= 1400
|
||||||
_mm_pause();
|
_mm_pause();
|
||||||
#else
|
#else
|
||||||
__asm pause;
|
__asm pause;
|
||||||
#endif
|
#endif
|
||||||
|
#else
|
||||||
|
__asm__ __volatile__ ("pause");
|
||||||
|
#endif
|
||||||
|
#elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 6) || (defined(_M_ARM) && _M_ARM >= 6)
|
||||||
|
/* ARM */
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
/* Apparently there is a __yield() intrinsic that's compatible with ARM, but I cannot find documentation for it nor can I find where it's declared. */
|
||||||
|
__yield();
|
||||||
|
#else
|
||||||
|
__asm__ __volatile__ ("yield");
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
/* Unknown or unsupported architecture. No-op. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TODO: Implement me. x86 = PAUSE; ARM = YIELD; */
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user