Commit b534c7f9 authored by Michael Niedermayer's avatar Michael Niedermayer

some benchmarking code

Originally committed as revision 1901 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 9fe690c8
...@@ -1090,6 +1090,35 @@ if((y)<(x)){\ ...@@ -1090,6 +1090,35 @@ if((y)<(x)){\
} }
#endif #endif
#ifdef ARCH_X86
static inline long long rdtsc()
{
long long l;
asm volatile( "rdtsc\n\t"
: "=A" (l)
);
return l;
}
#define START_TIMER \
static uint64_t tsum=0;\
static int tcount=0;\
static int tskip_count=0;\
uint64_t tend;\
uint64_t tstart= rdtsc();\
#define STOP_TIMER(id) \
tend= rdtsc();\
if(tcount<2 || tend - tstart < 4*tsum/tcount){\
tsum+= tend - tstart;\
tcount++;\
}else\
tskip_count++;\
if(256*256*256*64%(tcount+tskip_count)==0){\
fprintf(stderr, "%Ld dezicycles in %s, %d runs, %d skips\n", tsum*10/tcount, id, tcount, tskip_count);\
}
#endif
#define CLAMP_TO_8BIT(d) ((d > 0xff) ? 0xff : (d < 0) ? 0 : d) #define CLAMP_TO_8BIT(d) ((d > 0xff) ? 0xff : (d < 0) ? 0 : d)
/* avoid usage of various functions */ /* avoid usage of various functions */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment