Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: patched-ffmpeg-mt/libavcodec/sparc/simple_idct_vis.c

Issue 789004: ffmpeg roll of source to mar 9 version... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * SPARC VIS optimized inverse DCT 2 * SPARC VIS optimized inverse DCT
3 * Copyright (c) 2007 Denes Balatoni < dbalatoni XatX interware XdotX hu > 3 * Copyright (c) 2007 Denes Balatoni < dbalatoni XatX interware XdotX hu >
4 * 4 *
5 * I did consult the following fine web page about dct 5 * I did consult the following fine web page about dct
6 * http://www.geocities.com/ssavekar/dct.htm 6 * http://www.geocities.com/ssavekar/dct.htm
7 * 7 *
8 * This file is part of FFmpeg. 8 * This file is part of FFmpeg.
9 * 9 *
10 * FFmpeg is free software; you can redistribute it and/or 10 * FFmpeg is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public 11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either 12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or (at your option) any later version. 13 * version 2.1 of the License, or (at your option) any later version.
14 * 14 *
15 * FFmpeg is distributed in the hope that it will be useful, 15 * FFmpeg is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details. 18 * Lesser General Public License for more details.
19 * 19 *
20 * You should have received a copy of the GNU Lesser General Public 20 * You should have received a copy of the GNU Lesser General Public
21 * License along with FFmpeg; if not, write to the Free Software 21 * License along with FFmpeg; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */ 23 */
24 24
25 #include "libavcodec/dsputil.h" 25 #include "libavcodec/dsputil.h"
26 26
27 static const DECLARE_ALIGNED_8(int16_t, coeffs)[28] = { 27 static const DECLARE_ALIGNED(8, int16_t, coeffs)[28] = {
28 - 1259,- 1259,- 1259,- 1259, 28 - 1259,- 1259,- 1259,- 1259,
29 - 4989,- 4989,- 4989,- 4989, 29 - 4989,- 4989,- 4989,- 4989,
30 -11045,-11045,-11045,-11045, 30 -11045,-11045,-11045,-11045,
31 -19195,-19195,-19195,-19195, 31 -19195,-19195,-19195,-19195,
32 -29126,-29126,-29126,-29126, 32 -29126,-29126,-29126,-29126,
33 25080, 25080, 25080, 25080, 33 25080, 25080, 25080, 25080,
34 12785, 12785, 12785, 12785 34 12785, 12785, 12785, 12785
35 }; 35 };
36 static const DECLARE_ALIGNED_8(uint16_t, scale)[4] = { 36 static const DECLARE_ALIGNED(8, uint16_t, scale)[4] = {
37 65536>>6, 65536>>6, 65536>>6, 65536>>6 37 65536>>6, 65536>>6, 65536>>6, 65536>>6
38 }; 38 };
39 static const DECLARE_ALIGNED_8(uint16_t, rounder)[4] = { 39 static const DECLARE_ALIGNED(8, uint16_t, rounder)[4] = {
40 1<<5, 1<<5, 1<<5, 1<<5 40 1<<5, 1<<5, 1<<5, 1<<5
41 }; 41 };
42 static const DECLARE_ALIGNED_8(uint16_t, expand)[4] = { 42 static const DECLARE_ALIGNED(8, uint16_t, expand)[4] = {
43 1<<14, 1<<14, 1<<14, 1<<14 43 1<<14, 1<<14, 1<<14, 1<<14
44 }; 44 };
45 45
46 #define INIT_IDCT \ 46 #define INIT_IDCT \
47 "ldd [%1], %%f32 \n\t"\ 47 "ldd [%1], %%f32 \n\t"\
48 "ldd [%1+8], %%f34 \n\t"\ 48 "ldd [%1+8], %%f34 \n\t"\
49 "ldd [%1+16], %%f36 \n\t"\ 49 "ldd [%1+16], %%f36 \n\t"\
50 "ldd [%1+24], %%f38 \n\t"\ 50 "ldd [%1+24], %%f38 \n\t"\
51 "ldd [%1+32], %%f40 \n\t"\ 51 "ldd [%1+32], %%f40 \n\t"\
52 "ldd [%1+40], %%f42 \n\t"\ 52 "ldd [%1+40], %%f42 \n\t"\
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 "st %%f4, [%7+" dest "] \n\t"\ 379 "st %%f4, [%7+" dest "] \n\t"\
380 "st %%f6, [%8+" dest "] \n\t"\ 380 "st %%f6, [%8+" dest "] \n\t"\
381 "st %%f8, [%9+" dest "] \n\t"\ 381 "st %%f8, [%9+" dest "] \n\t"\
382 "st %%f10, [%10+" dest "] \n\t"\ 382 "st %%f10, [%10+" dest "] \n\t"\
383 "st %%f12, [%11+" dest "] \n\t"\ 383 "st %%f12, [%11+" dest "] \n\t"\
384 "st %%f14, [%12+" dest "] \n\t"\ 384 "st %%f14, [%12+" dest "] \n\t"\
385 385
386 386
387 void ff_simple_idct_vis(DCTELEM *data) { 387 void ff_simple_idct_vis(DCTELEM *data) {
388 int out1, out2, out3, out4; 388 int out1, out2, out3, out4;
389 DECLARE_ALIGNED_8(int16_t, temp)[8*8]; 389 DECLARE_ALIGNED(8, int16_t, temp)[8*8];
390 390
391 __asm__ volatile( 391 __asm__ volatile(
392 INIT_IDCT 392 INIT_IDCT
393 393
394 #define ADDROUNDER 394 #define ADDROUNDER
395 395
396 // shift right 16-4=12 396 // shift right 16-4=12
397 LOADSCALE("%2+8") 397 LOADSCALE("%2+8")
398 IDCT4ROWS 398 IDCT4ROWS
399 STOREROWS("%3+8") 399 STOREROWS("%3+8")
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 LOAD("%2+64") 519 LOAD("%2+64")
520 TRANSPOSE 520 TRANSPOSE
521 IDCT4ROWS 521 IDCT4ROWS
522 ADDPIXELSCLAMPED("4") 522 ADDPIXELSCLAMPED("4")
523 523
524 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6), 524 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6),
525 "=r" (r1), "=r" (r2), "=r" (r3), "=r" (r4), "=r" (r5), "=r" (r6), "=r" (r7) 525 "=r" (r1), "=r" (r2), "=r" (r3), "=r" (r4), "=r" (r5), "=r" (r6), "=r" (r7)
526 : "0" (rounder), "1" (coeffs), "2" (data), "3" (dest), "4" (line_size), "5" (expand) 526 : "0" (rounder), "1" (coeffs), "2" (data), "3" (dest), "4" (line_size), "5" (expand)
527 ); 527 );
528 } 528 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698