Eneboo - Documentación para desarrolladores
src/hoard/src/heaplayers/experimental/prefetchheap.h
Ir a la documentación de este archivo.
00001 /* -*- C++ -*- */
00002 
00003 #ifndef _PREFETCHHEAP_H_
00004 #define _PREFETCHHEAP_H_
00005 
00006 #define prefetcht0                                        __asm _emit 0x0f __asm _emit 0x18 __asm _emit 0x08
00007 
00008 
00009 template <class Super>
00010 class PrefetchHeap : public Super {
00011 public:
00012   
00013   inline void * malloc (size_t sz) {
00014     void * Address = Super::malloc (sz);
00015 #ifdef _M_IX86
00016       // Prefetch this ptr before we return.
00017       __asm
00018         {
00019           mov   eax,Address    // Load Address.
00020           prefetcht0    // Prefetch into the L1.
00021         }
00022 #endif
00023     return Address;
00024   }
00025   
00026   inline void free (void * ptr) {
00027     Super::free (ptr);
00028   }
00029 };
00030 
00031 #endif
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'