let the prefetch go through a register instead...
authorbdemsky <bdemsky>
Tue, 19 Oct 2010 05:14:46 +0000 (05:14 +0000)
committerbdemsky <bdemsky>
Tue, 19 Oct 2010 05:14:46 +0000 (05:14 +0000)
Robust/src/Runtime/memPool.h

index 51fbc1f24d86ab2c0a085f3f86dfe3ade20f2d07..9d2f21b3c79a66978f4e5a28b53f5401870e989f 100644 (file)
@@ -120,8 +120,6 @@ static inline void* poolalloc( MemPool* p ) {
 
   //////////////////////////////////////////////////////////
   //
-  //   a prefetch statement from the Linux kernel,
-  //   which the little "m" depends on architecture:
   //
   //  static inline void prefetch(void *x) 
   //  { 
@@ -132,7 +130,7 @@ static inline void* poolalloc( MemPool* p ) {
   //  but this built-in gcc one seems the most portable:
   //////////////////////////////////////////////////////////
   //__builtin_prefetch( &(p->head->next) );
-  asm volatile( "prefetcht0 %0" :: "m" (next));
+  asm volatile( "prefetcht0 (%0)" :: "r" (next));
 
   return headCurrent;
 }