Mercurial > libavutil.hg
diff timer.h @ 718:fa8c9944568f libavutil
Split libavutil/timer.h per architecture
author | mru |
---|---|
date | Wed, 01 Apr 2009 22:56:22 +0000 |
parents | 70bdd5501662 |
children | faf384df4bd7 |
line wrap: on
line diff
--- a/timer.h Tue Mar 31 14:00:46 2009 +0000 +++ b/timer.h Wed Apr 01 22:56:22 2009 +0000 @@ -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; +#if ARCH_BFIN +# include "bfin/timer.h" +#elif ARCH_PPC +# include "ppc/timer.h" +#elif ARCH_X86 +# include "x86/timer.h" +#endif - /* 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; -} -#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