[FFmpeg-cvslog] r9302 - trunk/libavutil/common.h

mhoffman subversion
Wed Jun 13 13:09:07 CEST 2007


Author: mhoffman
Date: Wed Jun 13 13:09:07 2007
New Revision: 9302

Log:
Blackfin - read_time primitive
note this primitive currently uses a union to concatenate 2x32bit registers because of poor compiler support
around DImode and asm.

Modified:
   trunk/libavutil/common.h

Modified: trunk/libavutil/common.h
==============================================================================
--- trunk/libavutil/common.h	(original)
+++ trunk/libavutil/common.h	Wed Jun 13 13:09:07 2007
@@ -267,7 +267,7 @@ static inline int ff_get_fourcc(const ch
         }\
     }
 
-#if defined(ARCH_X86) || defined(ARCH_POWERPC)
+#if defined(ARCH_X86) || defined(ARCH_POWERPC) || defined(ARCH_BFIN)
 #if defined(ARCH_X86_64)
 static inline uint64_t read_time(void)
 {
@@ -286,6 +286,19 @@ static inline long long read_time(void)
         );
         return l;
 }
+#elif ARCH_BFIN
+static inline uint64_t read_time(void)
+{
+    union {
+        struct {
+            unsigned lo;
+            unsigned hi;
+        } p;
+        unsigned long long c;
+    } t;
+    asm volatile ("%0=cycles; %1=cycles2;" : "=d" (t.p.lo), "=d" (t.p.hi));
+    return t.c;
+}
 #else //FIXME check ppc64
 static inline uint64_t read_time(void)
 {




More information about the ffmpeg-cvslog mailing list