From b8948e84b881c6b3cfaa26fa5512fe4c1800baa0 Mon Sep 17 00:00:00 2001 From: Jean-Francois Romang Date: Sat, 6 Oct 2012 04:30:22 +0800 Subject: [PATCH] Allow prefetching on non-x86 platforms with gcc In particular on ARM processors. Original patch by Jean-Francois, sligtly modified by me to preserve the meaning of NO_PREFETCH flag. Verified with gcc, clang and icc that prefetch instruction is correctly created. No functional change. --- src/misc.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/misc.cpp b/src/misc.cpp index fefa8d4f..167eedb3 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -237,8 +237,13 @@ void prefetch(char* addr) { __asm__ (""); # endif +# if defined(__INTEL_COMPILER) || defined(__ICL) || defined(_MSC_VER) _mm_prefetch(addr, _MM_HINT_T2); _mm_prefetch(addr+64, _MM_HINT_T2); // 64 bytes ahead +# else + __builtin_prefetch(addr); + __builtin_prefetch(addr+64); +# endif } #endif -- 2.39.2