diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2005-04-18 11:24:20 +0000 |
---|---|---|
committer | Aurelien Jacobs <aurel@gnuage.org> | 2005-04-18 11:24:20 +0000 |
commit | 8230cf0210c9845cfbe291b91c518a062da55c0c (patch) | |
tree | 5e63b3876f6486a2ff3e5e5ac197afd2d11ab440 | |
parent | 6c618a263d9f6daa3d836dcc2c3896698de64941 (diff) | |
download | ffmpeg-streaming-8230cf0210c9845cfbe291b91c518a062da55c0c.zip ffmpeg-streaming-8230cf0210c9845cfbe291b91c518a062da55c0c.tar.gz |
add an AMD64 specific implementation of rdtsc()
Originally committed as revision 4135 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/common.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/common.h b/libavcodec/common.h index 20978ae..4d72d88 100644 --- a/libavcodec/common.h +++ b/libavcodec/common.h @@ -457,6 +457,16 @@ if((y)<(x)){\ #endif #if defined(ARCH_X86) || defined(ARCH_X86_64) +#if defined(ARCH_X86_64) +static inline uint64_t rdtsc(void) +{ + uint64_t a, d; + asm volatile( "rdtsc\n\t" + : "=a" (a), "=d" (d) + ); + return (d << 32) | (a & 0xffffffff); +} +#else static inline long long rdtsc(void) { long long l; @@ -465,6 +475,7 @@ static inline long long rdtsc(void) ); return l; } +#endif #define START_TIMER \ uint64_t tend;\ |