diff options
author | Måns Rullgård <mans@mansr.com> | 2009-04-01 22:56:22 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2009-04-01 22:56:22 +0000 |
commit | 439ccc4e0e7965d682907882116a5d18e83e1292 (patch) | |
tree | 88b27ad20f273772b5939cc8997b82a812dc11b7 /libavutil/timer.h | |
parent | 0a47f60aa8a25bc71f717f4d8c09d46b2d16e5ba (diff) | |
download | ffmpeg-439ccc4e0e7965d682907882116a5d18e83e1292.tar.gz |
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.h | 53 |
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 |