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)