vcpkg/ports/libpq/windows/spin_delay.patch
Kai Pastor 2f56fdad4b
[libpq,libxslt] Update libpq, fix misc issues (#31314)
* [libpq] Install msys2 autoconf-archive

* Install msys2 zic tool

* Fix zstd patching

* Always build as if cross compiling

* Enable feature client for non-windows

* Cleanup (WIP)

* Cleanup (WIP)

* Update portfile.cmake

* WIP

* WIP

* WIP

* WIP

* [libxslt] Fix pc files

* WIP

* WIP: Test libpq[all]

* WIP

* Update to 15.3

* Move patches

* Revert "WIP: Test libpq[all]"

* Fix install

* Skip import libs for plugins

* Full CI
2023-05-31 19:55:03 -07:00

25 lines
653 B
Diff

diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 4d3ffc7..658b1a1 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -953,12 +953,18 @@ typedef LONG slock_t;
/* If using Visual C++ on Win64, inline assembly is unavailable.
* Use a _mm_pause intrinsic instead of rep nop.
*/
-#if defined(_WIN64)
+#if defined(_M_X64) && !defined(_M_ARM64EC)
static __forceinline void
spin_delay(void)
{
_mm_pause();
}
+#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC)
+static __forceinline void
+spin_delay(void)
+{
+ __yield();
+}
#else
static __forceinline void
spin_delay(void)