Mercurial > libavcodec.hg
annotate x86/h264_idct_sse2.asm @ 12483:0159a19bfff7 libavcodec
aacdec: Rework channel mapping compatibility hacks.
For a PCE based configuration map the channels solely based on tags.
For an indexed configuration map the channels solely based on position.
This works with all known exotic samples including al17, elem_id0, bad_concat,
and lfe_is_sce.
author | alexc |
---|---|
date | Fri, 10 Sep 2010 18:01:48 +0000 |
parents | 14896fa76003 |
children |
rev | line source |
---|---|
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
1 ;***************************************************************************** |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
2 ;* SSE2-optimized H.264 iDCT |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
3 ;***************************************************************************** |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
4 ;* Copyright (C) 2003-2008 x264 project |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
5 ;* |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
6 ;* Authors: Laurent Aimar <fenrir@via.ecp.fr> |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
7 ;* Loren Merritt <lorenm@u.washington.edu> |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
8 ;* Holger Lubitz <hal@duncan.ol.sub.de> |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
9 ;* Min Chen <chenm001.163.com> |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
10 ;* |
12480 | 11 ;* This file is part of FFmpeg. |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
12 ;* |
12480 | 13 ;* FFmpeg is free software; you can redistribute it and/or |
14 ;* modify it under the terms of the GNU Lesser General Public | |
15 ;* License as published by the Free Software Foundation; either | |
16 ;* version 2.1 of the License, or (at your option) any later version. | |
17 ;* | |
18 ;* FFmpeg is distributed in the hope that it will be useful, | |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
19 ;* but WITHOUT ANY WARRANTY; without even the implied warranty of |
12480 | 20 ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
21 ;* Lesser General Public License for more details. | |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
22 ;* |
12480 | 23 ;* You should have received a copy of the GNU Lesser General Public |
24 ;* License along with FFmpeg; if not, write to the Free Software | |
25 ;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
26 ;***************************************************************************** |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
27 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
28 %include "x86inc.asm" |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
29 %include "x86util.asm" |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
30 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
31 SECTION_RODATA |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
32 pw_32: times 8 dw 32 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
33 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
34 SECTION .text |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
35 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
36 INIT_XMM |
10019
c08ca946c80a
Update x264 asm code to latest to add support for 64-bit Windows.
darkshikari
parents:
9006
diff
changeset
|
37 cglobal x264_add8x4_idct_sse2, 3,3,8 |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
38 movq m0, [r1+ 0] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
39 movq m1, [r1+ 8] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
40 movq m2, [r1+16] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
41 movq m3, [r1+24] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
42 movhps m0, [r1+32] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
43 movhps m1, [r1+40] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
44 movhps m2, [r1+48] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
45 movhps m3, [r1+56] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
46 IDCT4_1D 0,1,2,3,4,5 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
47 TRANSPOSE2x4x4W 0,1,2,3,4 |
11931
980030a3e315
Update x264asm header files to latest versions.
darkshikari
parents:
10019
diff
changeset
|
48 paddw m0, [pw_32] |
9006
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
49 IDCT4_1D 0,1,2,3,4,5 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
50 pxor m7, m7 |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
51 STORE_DIFF m0, m4, m7, [r0] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
52 STORE_DIFF m1, m4, m7, [r0+r2] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
53 lea r0, [r0+r2*2] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
54 STORE_DIFF m2, m4, m7, [r0] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
55 STORE_DIFF m3, m4, m7, [r0+r2] |
37ac731fe32c
Convert x264 asm files to proper unix line breaks
darkshikari
parents:
9005
diff
changeset
|
56 RET |