22 #ifndef __jack_cycles_h__ 23 #define __jack_cycles_h__ 42 typedef unsigned long cycles_t;
43 extern cycles_t cacheflush_time;
45 static inline unsigned long get_cycles(
void)
48 __asm__ __volatile__ (
"rdtsc" :
"=a"(lo),
"=d"(hi));
49 return (((
unsigned long)hi)<<32) | ((
unsigned long)lo);
56 static inline unsigned long long get_cycles(
void)
58 unsigned long long res;
59 __asm__ __volatile__(
"rd %%tick, %0" :
"=r"(res));
66 static inline unsigned long long get_cycles(
void)
68 unsigned long long res;
69 __asm__ __volatile__(
"rd %%tick, %0" :
"=r"(res));
78 #define CPU_FTR_601 0x00000100 80 typedef unsigned long cycles_t;
84 extern cycles_t cacheflush_time;
86 static inline cycles_t get_cycles(
void)
91 # define LONGT ".llong" 93 # define LONGT ".long" 99 ".section __ftr_fixup,\"a\"\n" 105 :
"=r" (ret) :
"i" (CPU_FTR_601));
115 typedef unsigned long long cycles_t;
117 extern cycles_t cacheflush_time;
119 #define rdtscll(val) \ 120 __asm__ __volatile__("rdtsc" : "=A" (val)) 122 static inline cycles_t get_cycles (
void)
124 unsigned long long ret;
133 #if !defined (__PPC__) && !defined (__x86_64__) && !defined (__i386__) && !defined (__sparc_v9__) 135 #warning No suitable get_cycles() implementation. Returning 0 instead 137 typedef unsigned long long cycles_t;
139 static inline cycles_t get_cycles(
void)