Fix use of rdtsc on 64-bit (I think).
authorCarl Hetherington <carl@carlh.net>
Sat, 14 Jan 2012 22:02:07 +0000 (22:02 +0000)
committerCarl Hetherington <carl@carlh.net>
Sat, 14 Jan 2012 22:02:07 +0000 (22:02 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@11243 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/cycles.h

index bfa42a157ed394d00fd36a0b1f1343215a255585..a0249f8665db21a631635d4bcbe9c22e589e28b4 100644 (file)
@@ -43,15 +43,15 @@ typedef uint64_t cycles_t;
 
 extern cycles_t cacheflush_time;
 
-#define rdtscll(val) \
-     __asm__ __volatile__("rdtsc" : "=A" (val))
+#define rdtscll(lo, hi)                                                \
+       __asm__ __volatile__("rdtsc" : "=a" (lo), "=d" (hi))
 
 static inline cycles_t get_cycles (void)
 {
-       cycles_t ret;
+       cycles_t lo, hi;
 
-       rdtscll(ret);
-       return ret & 0xffffffff;
+       rdtscll(lo, hi);
+       return lo;
 }
 
 #elif defined(__powerpc__)