]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Port read_time() that works on x86_32 and 64 from noe.
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 21 Oct 2008 14:57:55 +0000 (14:57 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 21 Oct 2008 14:57:55 +0000 (14:57 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15661 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavutil/common.h

index 7ceaf33890c82e1377ef7f1fb9d3472b0848bed5..cd43abd0650583c8ad402c940e1d40f6be975fdb 100644 (file)
@@ -323,21 +323,13 @@ static inline av_pure int ff_get_fourcc(const char *s){
 
 #if defined(ARCH_X86) || defined(ARCH_POWERPC) || defined(ARCH_BFIN)
 #define AV_READ_TIME read_time
-#if defined(ARCH_X86_64)
+#if defined(ARCH_X86)
 static inline uint64_t read_time(void)
 {
-    uint64_t a, d;
+    uint32_t a, d;
     __asm__ volatile("rdtsc\n\t"
                  : "=a" (a), "=d" (d));
-    return (d << 32) | (a & 0xffffffff);
-}
-#elif defined(ARCH_X86_32)
-static inline long long read_time(void)
-{
-    long long l;
-    __asm__ volatile("rdtsc\n\t"
-                 : "=A" (l));
-    return l;
+    return ((uint64_t)d << 32) + a;
 }
 #elif ARCH_BFIN
 static inline uint64_t read_time(void)