]> mj.ucw.cz Git - libucw.git/commitdiff
Added prefetch functions.
authorMartin Mares <mj@ucw.cz>
Fri, 13 Jun 2003 21:13:51 +0000 (21:13 +0000)
committerMartin Mares <mj@ucw.cz>
Fri, 13 Jun 2003 21:13:51 +0000 (21:13 +0000)
lib/prefetch.h [new file with mode: 0644]

diff --git a/lib/prefetch.h b/lib/prefetch.h
new file mode 100644 (file)
index 0000000..5c675d1
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *     Sherlock Library -- Prefetch
+ *
+ *     (c) 1997--2003 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 _SHERLOCK_PREFETCH_H
+#define _SHERLOCK_PREFETCH_H
+
+#if defined(__athlon) || defined(__i686)
+
+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
+
+static inline void prefetch(void *addr UNUSED)
+{
+}
+
+#endif
+
+#endif