]> git.sesse.net Git - ffmpeg/blob - libavcodec/x86/proresdsp.asm
x86: dct-test: add more idcts
[ffmpeg] / libavcodec / x86 / proresdsp.asm
1 ;******************************************************************************
2 ;* x86-SIMD-optimized IDCT for prores
3 ;* this is identical to "simple" IDCT written by Michael Niedermayer
4 ;* except for the clip range
5 ;*
6 ;* Copyright (c) 2011 Ronald S. Bultje <rsbultje@gmail.com>
7 ;*
8 ;* This file is part of FFmpeg.
9 ;*
10 ;* FFmpeg is free software; you can redistribute it and/or
11 ;* modify it under the terms of the GNU Lesser General Public
12 ;* License as published by the Free Software Foundation; either
13 ;* version 2.1 of the License, or (at your option) any later version.
14 ;*
15 ;* FFmpeg is distributed in the hope that it will be useful,
16 ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 ;* Lesser General Public License for more details.
19 ;*
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
22 ;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 ;******************************************************************************
24
25 %include "libavutil/x86/x86util.asm"
26
27 %if ARCH_X86_64
28
29 SECTION_RODATA
30
31 pw_88:      times 8 dw 0x2008
32 cextern pw_1
33 cextern pw_4
34 cextern pw_1019
35
36 %include "libavcodec/x86/simple_idct10_template.asm"
37
38 section .text align=16
39
40 %macro idct_fn 0
41 cglobal prores_idct_put_10, 4, 4, 15
42     IDCT_FN    pw_1, 15, pw_88, 18, pw_4, pw_1019, r3
43     RET
44 %endmacro
45
46 INIT_XMM sse2
47 idct_fn
48 %if HAVE_AVX_EXTERNAL
49 INIT_XMM avx
50 idct_fn
51 %endif
52
53 %endif