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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
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
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
13 ;* FFmpeg is free software; you can redistribute it and/or
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
14 ;* modify it under the terms of the GNU Lesser General Public
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
15 ;* License as published by the Free Software Foundation; either
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
16 ;* version 2.1 of the License, or (at your option) any later version.
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
17 ;*
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
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
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
20 ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
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
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
23 ;* You should have received a copy of the GNU Lesser General Public
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
24 ;* License along with FFmpeg; if not, write to the Free Software
14896fa76003 LGPL SSE2 H.264 iDCT
darkshikari
parents: 11931
diff changeset
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