46 /*
47 * prefetch 64 bytes
48 *
49 * prefetch is an SSE extension which is not supported on
50 * older 32-bit processors, so define this as a no-op for now
51 */
52
53 extern __GNU_INLINE void
54 prefetch_read_many(void *addr)
55 {
56 #if defined(__amd64)
57 __asm__(
58 "prefetcht0 (%0);"
59 "prefetcht0 32(%0);"
60 : /* no output */
61 : "r" (addr));
62 #endif /* __amd64 */
63 }
64
65 extern __GNU_INLINE void
66 refetch_read_once(void *addr)
67 {
68 #if defined(__amd64)
69 __asm__(
70 "prefetchnta (%0);"
71 "prefetchnta 32(%0);"
72 : /* no output */
73 : "r" (addr));
74 #endif /* __amd64 */
75 }
76
77 extern __GNU_INLINE void
78 prefetch_write_many(void *addr)
79 {
80 #if defined(__amd64)
81 __asm__(
82 "prefetcht0 (%0);"
83 "prefetcht0 32(%0);"
84 : /* no output */
85 : "r" (addr));
86 #endif /* __amd64 */
|
46 /*
47 * prefetch 64 bytes
48 *
49 * prefetch is an SSE extension which is not supported on
50 * older 32-bit processors, so define this as a no-op for now
51 */
52
53 extern __GNU_INLINE void
54 prefetch_read_many(void *addr)
55 {
56 #if defined(__amd64)
57 __asm__(
58 "prefetcht0 (%0);"
59 "prefetcht0 32(%0);"
60 : /* no output */
61 : "r" (addr));
62 #endif /* __amd64 */
63 }
64
65 extern __GNU_INLINE void
66 prefetch_read_once(void *addr)
67 {
68 #if defined(__amd64)
69 __asm__(
70 "prefetchnta (%0);"
71 "prefetchnta 32(%0);"
72 : /* no output */
73 : "r" (addr));
74 #endif /* __amd64 */
75 }
76
77 extern __GNU_INLINE void
78 prefetch_write_many(void *addr)
79 {
80 #if defined(__amd64)
81 __asm__(
82 "prefetcht0 (%0);"
83 "prefetcht0 32(%0);"
84 : /* no output */
85 : "r" (addr));
86 #endif /* __amd64 */
|