diff options
Diffstat (limited to 'src/osd/windows/winwork.c')
-rw-r--r-- | src/osd/windows/winwork.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/osd/windows/winwork.c b/src/osd/windows/winwork.c index c55511a6446..8e1c8d1048e 100644 --- a/src/osd/windows/winwork.c +++ b/src/osd/windows/winwork.c @@ -25,8 +25,6 @@ #include "eminline.h" -#include "osinline.h" - //============================================================ // DEBUGGING @@ -59,6 +57,28 @@ #define end_timing(v) do { } while (0) #endif +#if __GNUC__ && defined(__i386__) && !defined(__x86_64) +#undef YieldProcessor +#endif + +#ifndef YieldProcessor +#ifdef __GNUC__ +INLINE void osd_yield_processor(void) +{ + __asm__ __volatile__ ( "rep; nop" ); +} +#else +INLINE void osd_yield_processor(void) +{ + __asm { rep nop } +} +#endif +#else +#define osd_yield_processor YieldProcessor +#endif + + + //============================================================ // TYPE DEFINITIONS //============================================================ |