Mercurial > libavcodec.hg
annotate x86/h264_idct_sse2.asm @ 10893:2aafcafbe1f0 libavcodec
Replace cabac checks in inline functions from h264.h with constants.
No benchmark because its just replacing variables with litteral constants
(so no risk for slowdown outside gcc silliness) and i need sleep.
author | michael |
---|---|
date | Sat, 16 Jan 2010 05:41:33 +0000 |
parents | c08ca946c80a |
children | 980030a3e315 |
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 |