00001 00002 #include <sys/types.h> 00003 00004 #define TBL 0x10c 00005 #define TBU 0x10d 00006 00007 #define mfspr(reg,var) __asm__ __volatile__ \ 00008 ("mfspr %0, %1" : "=r" (var) : "i" (reg) ) 00009 00010 static __inline__ u_int64_t _rdtsc(void) 00011 { 00012 u_int32_t upper; 00013 u_int32_t lower; 00014 00015 mfspr(TBU,upper); 00016 mfspr(TBL,lower); 00017 00018 return ( (u_int64_t)upper<<32 | lower); 00019 } 00020