]> mj.ucw.cz Git - libucw.git/commitdiff
Don't use prefetch on Pentium 4, it actually gives worse results than
authorMartin Mares <mj@ucw.cz>
Mon, 4 Apr 2005 18:30:13 +0000 (18:30 +0000)
committerMartin Mares <mj@ucw.cz>
Mon, 4 Apr 2005 18:30:13 +0000 (18:30 +0000)
not prefetching at all. Need to investigate more later.

lib/prefetch.h

index 46d10ca328cf0f101867c9cf64fa0191b7431431..a0b045fbde0838f4e7088ac51848b1e4e64c43f1 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *     UCW Library -- Prefetch
  *
- *     (c) 1997--2003 Martin Mares <mj@ucw.cz>
+ *     (c) 1997--2005 Martin Mares <mj@ucw.cz>
  *
  *     This software may be freely distributed and used according to the terms
  *     of the GNU Lesser General Public License.
 #ifndef _UCW_PREFETCH_H
 #define _UCW_PREFETCH_H
 
-#if defined(__athlon) || defined(__i686)
+#if defined(__pentium4)
+  /* Default prefetches are good enough */
 
+#elif defined(__k6)
+  /* K6 doesn't have prefetches */
+
+#elif defined(__athlon) || defined(__i686)
+
+#define HAVE_PREFETCH
 static inline void prefetch(void *addr)
 {
   asm volatile ("prefetcht0 %0" : : "m" (*(byte*)addr));
 }
 
 #else
-
-#if !defined(__k6)
 #warning "Don't know how to prefetch on your CPU. Please fix lib/prefetch.h."
 #endif
 
+#ifndef HAVE_PREFETCH
 static inline void prefetch(void *addr UNUSED)
 {
 }
-
 #endif
 
 #endif