Merge branch 'master' of http://repo.or.cz/r/FFMpeg-mirror
[FFMpeg-mirror/DVCPRO-HD.git] / libavcodec / bfin / dsputil_bfin.h
blob411c8ea73cb95157d53c1fd4df9dff39a03e0f89
1 /*
2 * BlackFin DSPUTILS COMMON OPTIMIZATIONS HEADER
4 * Copyright (C) 2007 Marc Hoffman <mmh@pleasantst.com>
6 * This file is part of FFmpeg.
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 #ifndef FFMPEG_DSPUTIL_BFIN_H
25 #define FFMPEG_DSPUTIL_BFIN_H
27 #ifdef __FDPIC__
28 #define attribute_l1_text __attribute__ ((l1_text))
29 #define attribute_l1_data_b __attribute__((l1_data_B))
30 #else
31 #define attribute_l1_text
32 #define attribute_l1_data_b
33 #endif
35 #ifdef BFIN_PROFILE
37 static double Telem[16];
38 static char *TelemNames[16];
39 static int TelemCnt;
41 #define PROF(lab,e) { int xx_e = e; char*xx_lab = lab; uint64_t xx_t0 = read_time();
42 #define EPROF() xx_t0 = read_time()-xx_t0; Telem[xx_e] = Telem[xx_e] + xx_t0; TelemNames[xx_e] = xx_lab; }
44 static void prof_report (void)
46 int i;
47 double s = 0;
48 for (i=0;i<16;i++) {
49 double v;
50 if (TelemNames[i]) {
51 v = Telem[i]/TelemCnt;
52 av_log (NULL,AV_LOG_DEBUG,"%-20s: %12.4f\t%12.4f\n", TelemNames[i],v,v/64);
53 s = s + Telem[i];
56 av_log (NULL,AV_LOG_DEBUG,"%-20s: %12.4f\t%12.4f\n%20.4f\t%d\n",
57 "total",s/TelemCnt,s/TelemCnt/64,s,TelemCnt);
60 static void bfprof (void)
62 static int init;
63 if (!init) atexit (prof_report);
64 init=1;
65 TelemCnt++;
68 #else
69 #define PROF(a,b)
70 #define EPROF()
71 #define bfprof()
72 #endif
74 #endif /* FFMPEG_DSPUTIL_BFIN_H */