add an AMD64 specific implementation of rdtsc()
authorAurelien Jacobs <aurel@gnuage.org>
Mon, 18 Apr 2005 11:24:20 +0000 (11:24 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Mon, 18 Apr 2005 11:24:20 +0000 (11:24 +0000)
Originally committed as revision 4135 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/common.h

index 20978ae..4d72d88 100644 (file)
@@ -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;\