diff options
author | Carl Hetherington <carl@carlh.net> | 2012-01-14 23:32:03 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-01-14 23:32:03 +0000 |
commit | 381346ba5f732519c89dc51b03d84ad6decfe6f2 (patch) | |
tree | 1aff1885ff6d4fe67b29b332f8df2de896e3fc87 /libs/ardour/ardour/cycles.h | |
parent | 36ec03358fd3f124217416f3db67f9f1aba72aa9 (diff) |
Try to fix previous commit on 32-bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@11248 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/cycles.h')
-rw-r--r-- | libs/ardour/ardour/cycles.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/ardour/ardour/cycles.h b/libs/ardour/ardour/cycles.h index a0249f8665..01e1d55221 100644 --- a/libs/ardour/ardour/cycles.h +++ b/libs/ardour/ardour/cycles.h @@ -43,6 +43,8 @@ typedef uint64_t cycles_t; extern cycles_t cacheflush_time; +#if defined(__x86_64__) + #define rdtscll(lo, hi) \ __asm__ __volatile__("rdtsc" : "=a" (lo), "=d" (hi)) @@ -54,6 +56,20 @@ static inline cycles_t get_cycles (void) return lo; } +#else + +#define rdtscll(val) \ +__asm__ __volatile__("rdtsc" : "=A" (val)) + +static inline cycles_t get_cycles (void) +{ + cycles_t ret; + + rdtscll(ret); + return ret & 0xffffffff; +} +#endif + #elif defined(__powerpc__) #define CPU_FTR_601 0x00000100 |