From 439ccc4e0e7965d682907882116a5d18e83e1292 Mon Sep 17 00:00:00 2001 From: Måns Rullgård Date: Wed, 1 Apr 2009 22:56:22 +0000 Subject: Split libavutil/timer.h per architecture Originally committed as revision 18304 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/timer.h | 53 +++++++++-------------------------------------------- 1 file changed, 9 insertions(+), 44 deletions(-) (limited to 'libavutil/timer.h') 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 #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 -- cgit v1.2.3