From 29045950804cea687e79f8b2794f71160a79977f Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Mon, 30 Jan 2023 11:06:10 +0800 Subject: [PATCH] spin_delay.hpp: fix for Darwin PPC --- include/seqan3/utility/parallel/detail/spin_delay.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/seqan3/utility/parallel/detail/spin_delay.hpp b/include/seqan3/utility/parallel/detail/spin_delay.hpp index 78803e6c0..da246b72c 100644 --- include/seqan3/utility/parallel/detail/spin_delay.hpp +++ include/seqan3/utility/parallel/detail/spin_delay.hpp @@ -87,8 +87,12 @@ private: __asm__ __volatile__("yield" ::: "memory"); #elif defined(__ia64__) // IA64 __asm__ __volatile__("hint @pause"); -#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) // PowerPC +#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(__ppc64__) // PowerPC + #ifdef __APPLE__ + __asm__ volatile("or r27,r27,r27" ::: "memory"); + #else __asm__ __volatile__("or 27,27,27" ::: "memory"); + #endif #else // everything else. asm volatile("nop" ::: "memory"); // default operation - does nothing => Might lead to passive spinning. #endif