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));
68 #define CPU_FTR_601 0x00000100
70 typedef unsigned long cycles_t;
74 extern cycles_t cacheflush_time;
76 static inline cycles_t get_cycles(
void)
83 ".section __ftr_fixup,\"a\"\n"
89 :
"=r" (ret) :
"i" (CPU_FTR_601));
97 typedef unsigned long long cycles_t;
99 extern cycles_t cacheflush_time;
101 #define rdtscll(val) \
102 __asm__ __volatile__("rdtsc" : "=A" (val))
104 static inline cycles_t get_cycles (
void)
106 unsigned long long ret;
115 #if !defined (__PPC__) && !defined (__x86_64__) && !defined (__i386__) && !defined (__sparc_v9__)
117 #warning No suitable get_cycles() implementation. Returning 0 instead
119 typedef unsigned long long cycles_t;
121 static inline cycles_t get_cycles(
void)