From ce92f8b4634b128c4e1090d26617a17fb73ae3d5 Mon Sep 17 00:00:00 2001
From: Magnus Hagander <magnus@hagander.net>
Date: Tue, 5 Jan 2010 11:06:28 +0000
Subject: [PATCH] Use _mm_pause() for win64 spin_delay(), per note from Tsutomu
 Yamada.

---
 src/include/storage/s_lock.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index c6edb7a5e9e..4104cf6c4ca 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -66,7 +66,7 @@
  * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *	  $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.170 2010/01/04 17:10:24 mha Exp $
+ *	  $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.171 2010/01/05 11:06:28 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -837,13 +837,13 @@ typedef LONG slock_t;
 #define SPIN_DELAY() spin_delay()
 
 /* If using Visual C++ on Win64, inline assembly is unavailable.
- * Use a __nop instrinsic instead of rep nop.
+ * Use a _mm_pause instrinsic instead of rep nop.
  */
 #if defined(_WIN64)
 static __forceinline void
 spin_delay(void)
 {
-	__nop();
+	_mm_pause();
 }
 #else
 static __forceinline void
-- 
GitLab