+#if defined(__x86_64__)
+
+#define rdtscll(lo, hi) \
+ __asm__ __volatile__("rdtsc" : "=a" (lo), "=d" (hi))
+
+static inline cycles_t get_cycles (void)
+{
+ cycles_t lo, hi;
+
+ rdtscll(lo, hi);
+ return lo;
+}
+
+#else
+
+#define rdtscll(val) \
+__asm__ __volatile__("rdtsc" : "=A" (val))