Zebediah Figura : include: Add YieldProcessor().

Alexandre Julliard julliard at winehq.org
Thu Jan 21 16:19:14 CST 2021


Module: wine
Branch: master
Commit: 86fc30c10540dc5ed225e547032ca1dd2d21433f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=86fc30c10540dc5ed225e547032ca1dd2d21433f

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Wed Jan 20 22:35:47 2021 -0600

include: Add YieldProcessor().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/winnt.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/winnt.h b/include/winnt.h
index d8abb8bde70..83f03b62ade 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -7154,6 +7154,19 @@ static FORCEINLINE void MemoryBarrier(void)
 
 #endif  /* __GNUC__ */
 
+static FORCEINLINE void YieldProcessor(void)
+{
+#ifdef __GNUC__
+#if defined(__i386__) || defined(__x86_64__)
+    __asm__ __volatile__( "rep; nop" : : : "memory" );
+#elif defined(__arm__) || defined(__aarch64__)
+    __asm__ __volatile__( "dmb ishst\n\tyield" : : : "memory" );
+#else
+    __asm__ __volatile__( "" : : : "memory" );
+#endif
+#endif
+}
+
 #ifdef __cplusplus
 }
 #endif




More information about the wine-cvs mailing list