summaryrefslogtreecommitdiff
path: root/libavutil/timer.h
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2009-04-01 22:56:22 +0000
committerMåns Rullgård <mans@mansr.com>2009-04-01 22:56:22 +0000
commit439ccc4e0e7965d682907882116a5d18e83e1292 (patch)
tree88b27ad20f273772b5939cc8997b82a812dc11b7 /libavutil/timer.h
parent0a47f60aa8a25bc71f717f4d8c09d46b2d16e5ba (diff)
Split libavutil/timer.h per architecture
Originally committed as revision 18304 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/timer.h')
-rw-r--r--libavutil/timer.h53
1 files changed, 9 insertions, 44 deletions
diff --git a/libavutil/timer.h b/libavutil/timer.h
index 709e12fe39..78342d7d58 100644
--- a/libavutil/timer.h
+++ b/libavutil/timer.h
@@ -28,51 +28,16 @@
#include <stdint.h>
#include "config.h"
-#if ARCH_X86 || ARCH_PPC || ARCH_BFIN
-#define AV_READ_TIME read_time
-#if ARCH_X86
-static inline uint64_t read_time(void)
-{
- uint32_t a, d;
- __asm__ volatile("rdtsc\n\t"
- : "=a" (a), "=d" (d));
- return ((uint64_t)d << 32) + a;
-}
-#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)
-{
- uint32_t tbu, tbl, temp;
-
- /* from section 2.2.1 of the 32-bit PowerPC PEM */
- __asm__ volatile(
- "1:\n"
- "mftbu %2\n"
- "mftb %0\n"
- "mftbu %1\n"
- "cmpw %2,%1\n"
- "bne 1b\n"
- : "=r"(tbl), "=r"(tbu), "=r"(temp)
- :
- : "cc");
-
- return (((uint64_t)tbu)<<32) | (uint64_t)tbl;
-}
+#if ARCH_BFIN
+# include "bfin/timer.h"
+#elif ARCH_PPC
+# include "ppc/timer.h"
+#elif ARCH_X86
+# include "x86/timer.h"
#endif
-#elif HAVE_GETHRTIME
-#define AV_READ_TIME gethrtime
+
+#if !defined(AV_READ_TIME) && HAVE_GETHRTIME
+# define AV_READ_TIME gethrtime
#endif
#ifdef AV_READ_TIME