Commit fa4b9e80 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #11275 from alalek:issue_11274

parents a68ffc81 7dc162cb
...@@ -49,7 +49,11 @@ DECLARE_CV_YIELD ...@@ -49,7 +49,11 @@ DECLARE_CV_YIELD
DECLARE_CV_PAUSE DECLARE_CV_PAUSE
#endif #endif
#ifndef CV_PAUSE #ifndef CV_PAUSE
#if defined __GNUC__ && (defined __i386__ || defined __x86_64__) # if defined __GNUC__ && (defined __i386__ || defined __x86_64__)
# if !defined(__SSE__)
static inline void cv_non_sse_mm_pause() { __asm__ __volatile__ ("rep; nop"); }
# define _mm_pause cv_non_sse_mm_pause
# endif
# define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { _mm_pause(); } } while (0) # define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { _mm_pause(); } } while (0)
# elif defined __GNUC__ && defined __aarch64__ # elif defined __GNUC__ && defined __aarch64__
# define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { asm volatile("yield" ::: "memory"); } } while (0) # define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { asm volatile("yield" ::: "memory"); } } while (0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment