annotate x86/h264_idct_sse2.asm @ 10019:c08ca946c80a libavcodec

Update x264 asm code to latest to add support for 64-bit Windows. Use the new x86inc features to support 64-bit Windows on all non-x264 nasm assembly code as well. Patch by John Adcock, dscaler.johnad AT googlemail DOT com. Win64 changes originally by Anton Mitrofanov. x86util changes mostly by Holger Lubitz.
author darkshikari
date Tue, 04 Aug 2009 07:42:55 +0000
parents 37ac731fe32c
children 980030a3e315
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 ;*
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
11 ;* This program is free software; you can redistribute it and/or modify
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
12 ;* it under the terms of the GNU General Public License as published by
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
13 ;* the Free Software Foundation; either version 2 of the License, or
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
14 ;* (at your option) any later version.
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
15 ;*
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
16 ;* This program is distributed in the hope that it will be useful,
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
17 ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
18 ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
19 ;* GNU General Public License for more details.
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
20 ;*
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
21 ;* You should have received a copy of the GNU General Public License
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
22 ;* along with this program; if not, write to the Free Software
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
23 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
24 ;*****************************************************************************
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
25
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
26 %include "x86inc.asm"
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
27 %include "x86util.asm"
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
28
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
29 SECTION_RODATA
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
30 pw_32: times 8 dw 32
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
31
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
32 SECTION .text
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 INIT_XMM
10019
c08ca946c80a Update x264 asm code to latest to add support for 64-bit Windows.
darkshikari
parents: 9006
diff changeset
35 cglobal x264_add8x4_idct_sse2, 3,3,8
9006
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
36 movq m0, [r1+ 0]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
37 movq m1, [r1+ 8]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
38 movq m2, [r1+16]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
39 movq m3, [r1+24]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
40 movhps m0, [r1+32]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
41 movhps m1, [r1+40]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
42 movhps m2, [r1+48]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
43 movhps m3, [r1+56]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
44 IDCT4_1D 0,1,2,3,4,5
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
45 TRANSPOSE2x4x4W 0,1,2,3,4
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
46 paddw m0, [pw_32 GLOBAL]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
47 IDCT4_1D 0,1,2,3,4,5
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
48 pxor m7, m7
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
49 STORE_DIFF m0, m4, m7, [r0]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
50 STORE_DIFF m1, m4, m7, [r0+r2]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
51 lea r0, [r0+r2*2]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
52 STORE_DIFF m2, m4, m7, [r0]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
53 STORE_DIFF m3, m4, m7, [r0+r2]
37ac731fe32c Convert x264 asm files to proper unix line breaks
darkshikari
parents: 9005
diff changeset
54 RET