Change use of rdtsc so it works with AMD64, too.
authorChristoph Mallon <christoph.mallon@gmx.de>
Fri, 15 Apr 2011 13:52:18 +0000 (15:52 +0200)
committerChristoph Mallon <christoph.mallon@gmx.de>
Fri, 15 Apr 2011 13:52:44 +0000 (15:52 +0200)
ir/stat/stat_timing.h

index 026248f..e29deb6 100644 (file)
 
 #if defined(__GNUC__)
 typedef unsigned long long timing_ticks_t;
-static inline timing_ticks_t __timing_ticks(void) { timing_ticks_t result; __asm__ __volatile__ ("rdtsc" : "=A" (result)); return result; }
+static inline timing_ticks_t __timing_ticks(void)
+{
+       unsigned h;
+       unsigned l;
+       __asm__ volatile("rdtsc" : "=a" (l), "=d" (h));
+       return (timing_ticks_t)h << 32 | l;
+}
 
 #elif defined(_MSC_VER)
 #include <intrin.h>