X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fstat%2Fstat_timing.h;h=645b76845109df93b4becc6adbd97f93885628c0;hb=76a6cf6ff4e6fdcf17c8e8530f006b538f1d954c;hp=026248fddb966b6f39a7afd70c391709d64045d9;hpb=68f1fef312ea0a037cf9815042ea30e95ce1b619;p=libfirm diff --git a/ir/stat/stat_timing.h b/ir/stat/stat_timing.h index 026248fdd..645b76845 100644 --- a/ir/stat/stat_timing.h +++ b/ir/stat/stat_timing.h @@ -21,7 +21,6 @@ * @file * @brief OS abstraction from time measurement * @author Sebastian Hack, Michael Beck, Matthias Braun - * @version $Id$ */ #ifndef FIRM_STAT_TIMING_H #define FIRM_STAT_TIMING_H @@ -30,7 +29,13 @@ #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