annotate mp3lib/dct36_3dnow.c @ 32282:606e4157cd4c

Split alloc and init of context so that parameters can be set in the context instead of requireing being passed through function parameters. This also makes sws work with AVOptions.
author michael
date Sun, 26 Sep 2010 19:33:57 +0000
parents d0f70692a140
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
1 /*
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
2 * dct36_3dnow.c - 3DNow! optimized dct36()
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
3 *
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
4 * This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
5 * <squash@mb.kcom.ne.jp>, only two types of changes have been made:
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
6 *
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
7 * - removed PREFETCH instruction for speedup
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
8 * - changed function name for support 3DNow! automatic detection
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
9 *
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
10 * You can find Kashiyama's original 3dnow! support patch
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
11 * (for mpg123-0.59o) at
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
12 * http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
13 *
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
14 * by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
15 * <kim@comtec.co.jp> - after 1.Apr.1999
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
16 *
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 16989
diff changeset
17 * Modified for use with MPlayer, for details see the changelog at
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 16989
diff changeset
18 * http://svn.mplayerhq.hu/mplayer/trunk/
15167
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 10322
diff changeset
19 * $Id$
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 10322
diff changeset
20 *
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
21 * Original disclaimer:
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
22 * The author of this program disclaim whole expressed or implied
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
23 * warranties with regard to this program, and in no event shall the
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
24 * author of this program liable to whatever resulted from the use of
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
25 * this program. Use it at your own risk.
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
26 *
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
27 * 2003/06/21: Moved to GCC inline assembly - Alex Beregszaszi
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
28 */
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
29
28117
bd6833421e56 Consistently include config.h before mangle.h, fixes possible compilation
reimar
parents: 27757
diff changeset
30 #include "config.h"
16989
e7a129082fda Unify include paths, -I.. is in CFLAGS.
diego
parents: 15167
diff changeset
31 #include "mangle.h"
30167
347d152a5cfa Refactor real --> float #define to a typedef in a common header.
diego
parents: 28117
diff changeset
32 #include "mpg123.h"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
33 #include "libavutil/x86_cpu.h"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
34
25325
7c7885350d89 Identifiers starting with __ are reserved for the system.
diego
parents: 18783
diff changeset
35 #ifdef DCT36_OPTIMIZE_FOR_K7
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
36 void dct36_3dnowex(real *inbuf, real *o1,
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
37 real *o2, real *wintab, real *tsbuf)
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
38 #else
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
39 void dct36_3dnow(real *inbuf, real *o1,
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
40 real *o2, real *wintab, real *tsbuf)
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
41 #endif
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
42 {
27757
b5a46071062a Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.
diego
parents: 25325
diff changeset
43 __asm__ volatile(
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
44 "movq (%%"REG_a"),%%mm0\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
45 "movq 4(%%"REG_a"),%%mm1\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
46 "pfadd %%mm1,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
47 "movq %%mm0,4(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
48 "psrlq $32,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
49 "movq 12(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
50 "punpckldq %%mm2,%%mm1\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
51 "pfadd %%mm2,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
52 "movq %%mm1,12(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
53 "psrlq $32,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
54 "movq 20(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
55 "punpckldq %%mm3,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
56 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
57 "movq %%mm2,20(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
58 "psrlq $32,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
59 "movq 28(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
60 "punpckldq %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
61 "pfadd %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
62 "movq %%mm3,28(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
63 "psrlq $32,%%mm4\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
64 "movq 36(%%"REG_a"),%%mm5\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
65 "punpckldq %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
66 "pfadd %%mm5,%%mm4\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
67 "movq %%mm4,36(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
68 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
69 "movq 44(%%"REG_a"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
70 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
71 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
72 "movq %%mm5,44(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
73 "psrlq $32,%%mm6\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
74 "movq 52(%%"REG_a"),%%mm7\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
75 "punpckldq %%mm7,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
76 "pfadd %%mm7,%%mm6\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
77 "movq %%mm6,52(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
78 "psrlq $32,%%mm7\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
79 "movq 60(%%"REG_a"),%%mm0\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
80 "punpckldq %%mm0,%%mm7\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
81 "pfadd %%mm0,%%mm7\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
82 "movq %%mm7,60(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
83 "psrlq $32,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
84 "movd 68(%%"REG_a"),%%mm1\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
85 "pfadd %%mm1,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
86 "movd %%mm0,68(%%"REG_a")\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
87 "movd 4(%%"REG_a"),%%mm0\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
88 "movd 12(%%"REG_a"),%%mm1\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
89 "punpckldq %%mm1,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
90 "punpckldq 20(%%"REG_a"),%%mm1\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
91 "pfadd %%mm1,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
92 "movd %%mm0,12(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
93 "psrlq $32,%%mm0\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
94 "movd %%mm0,20(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
95 "psrlq $32,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
96 "movd 28(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
97 "punpckldq %%mm2,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
98 "punpckldq 36(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
99 "pfadd %%mm2,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
100 "movd %%mm1,28(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
101 "psrlq $32,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
102 "movd %%mm1,36(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
103 "psrlq $32,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
104 "movd 44(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
105 "punpckldq %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
106 "punpckldq 52(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
107 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
108 "movd %%mm2,44(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
109 "psrlq $32,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
110 "movd %%mm2,52(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
111 "psrlq $32,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
112 "movd 60(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
113 "punpckldq %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
114 "punpckldq 68(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
115 "pfadd %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
116 "movd %%mm3,60(%%"REG_a")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
117 "psrlq $32,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
118 "movd %%mm3,68(%%"REG_a")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
119
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
120 "movq 24(%%"REG_a"),%%mm0\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
121 "movq 48(%%"REG_a"),%%mm1\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
122 "movd "MANGLE(COS9)"+12,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
123 "punpckldq %%mm2,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
124 "movd "MANGLE(COS9)"+24,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
125 "punpckldq %%mm3,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
126 "pfmul %%mm2,%%mm0\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
127 "pfmul %%mm3,%%mm1\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
128 "push %%"REG_a"\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
129 "movl $1,%%eax\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
130 "movd %%eax,%%mm7\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
131 "pi2fd %%mm7,%%mm7\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
132 "pop %%"REG_a"\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
133 "movq 8(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
134 "movd "MANGLE(COS9)"+4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
135 "punpckldq %%mm3,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
136 "pfmul %%mm3,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
137 "pfadd %%mm0,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
138 "movq 40(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
139 "movd "MANGLE(COS9)"+20,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
140 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
141 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
142 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
143 "movq 56(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
144 "movd "MANGLE(COS9)"+28,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
145 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
146 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
147 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
148 "movq (%%"REG_a"),%%mm3\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
149 "movq 16(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
150 "movd "MANGLE(COS9)"+8,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
151 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
152 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
153 "pfadd %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
154 "movq 32(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
155 "movd "MANGLE(COS9)"+16,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
156 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
157 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
158 "pfadd %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
159 "pfadd %%mm1,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
160 "movq 64(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
161 "movd "MANGLE(COS9)"+32,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
162 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
163 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
164 "pfadd %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
165 "movq %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
166 "pfadd %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
167 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
168 "punpckldq "MANGLE(tfcos36)"+0,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
169 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
170 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
171 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
172 "movd 108(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
173 "punpckldq 104(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
174 "pfmul %%mm6,%%mm5\n\t"
25325
7c7885350d89 Identifiers starting with __ are reserved for the system.
diego
parents: 18783
diff changeset
175 #ifdef DCT36_OPTIMIZE_FOR_K7
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
176 "pswapd %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
177 "movq %%mm5,32(%%"REG_c")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
178 #else
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
179 "movd %%mm5,36(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
180 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
181 "movd %%mm5,32(%%"REG_c")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
182 #endif
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
183 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
184 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
185 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
186 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
187 "movd 32(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
188 "punpckldq 36(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
189 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
190 "movd 32(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
191 "punpckldq 36(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
192 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
193 "movd %%mm5,1024(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
194 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
195 "movd %%mm5,1152(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
196 "movq %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
197 "pfsub %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
198 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
199 "punpckldq "MANGLE(tfcos36)"+32,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
200 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
201 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
202 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
203 "movd 140(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
204 "punpckldq 72(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
205 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
206 "movd %%mm5,68(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
207 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
208 "movd %%mm5,0(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
209 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
210 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
211 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
212 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
213 "movd 0(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
214 "punpckldq 68(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
215 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
216 "movd 0(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
217 "punpckldq 68(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
218 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
219 "movd %%mm5,0(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
220 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
221 "movd %%mm5,2176(%%"REG_D")\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
222 "movq 8(%%"REG_a"),%%mm2\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
223 "movq 40(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
224 "pfsub %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
225 "movq 56(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
226 "pfsub %%mm3,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
227 "movd "MANGLE(COS9)"+12,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
228 "punpckldq %%mm3,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
229 "pfmul %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
230 "movq 16(%%"REG_a"),%%mm3\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
231 "movq 32(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
232 "pfsub %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
233 "movq 64(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
234 "pfsub %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
235 "movd "MANGLE(COS9)"+24,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
236 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
237 "pfmul %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
238 "movq 48(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
239 "pfsub %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
240 "movq (%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
241 "pfadd %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
242 "movq %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
243 "pfadd %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
244 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
245 "punpckldq "MANGLE(tfcos36)"+4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
246 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
247 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
248 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
249 "movd 112(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
250 "punpckldq 100(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
251 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
252 "movd %%mm5,40(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
253 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
254 "movd %%mm5,28(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
255 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
256 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
257 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
258 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
259 "movd 28(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
260 "punpckldq 40(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
261 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
262 "movd 28(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
263 "punpckldq 40(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
264 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
265 "movd %%mm5,896(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
266 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
267 "movd %%mm5,1280(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
268 "movq %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
269 "pfsub %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
270 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
271 "punpckldq "MANGLE(tfcos36)"+28,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
272 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
273 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
274 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
275 "movd 136(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
276 "punpckldq 76(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
277 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
278 "movd %%mm5,64(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
279 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
280 "movd %%mm5,4(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
281 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
282 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
283 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
284 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
285 "movd 4(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
286 "punpckldq 64(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
287 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
288 "movd 4(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
289 "punpckldq 64(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
290 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
291 "movd %%mm5,128(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
292 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
293 "movd %%mm5,2048(%%"REG_D")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
294
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
295 "movq 8(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
296 "movd "MANGLE(COS9)"+20,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
297 "punpckldq %%mm3,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
298 "pfmul %%mm3,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
299 "pfsub %%mm0,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
300 "movq 40(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
301 "movd "MANGLE(COS9)"+28,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
302 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
303 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
304 "pfsub %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
305 "movq 56(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
306 "movd "MANGLE(COS9)"+4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
307 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
308 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
309 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
310 "movq (%%"REG_a"),%%mm3\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
311 "movq 16(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
312 "movd "MANGLE(COS9)"+32,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
313 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
314 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
315 "pfsub %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
316 "movq 32(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
317 "movd "MANGLE(COS9)"+8,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
318 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
319 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
320 "pfsub %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
321 "pfadd %%mm1,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
322 "movq 64(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
323 "movd "MANGLE(COS9)"+16,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
324 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
325 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
326 "pfadd %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
327 "movq %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
328 "pfadd %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
329 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
330 "punpckldq "MANGLE(tfcos36)"+8,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
331 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
332 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
333 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
334 "movd 116(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
335 "punpckldq 96(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
336 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
337 "movd %%mm5,44(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
338 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
339 "movd %%mm5,24(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
340 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
341 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
342 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
343 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
344 "movd 24(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
345 "punpckldq 44(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
346 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
347 "movd 24(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
348 "punpckldq 44(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
349 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
350 "movd %%mm5,768(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
351 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
352 "movd %%mm5,1408(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
353 "movq %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
354 "pfsub %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
355 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
356 "punpckldq "MANGLE(tfcos36)"+24,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
357 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
358 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
359 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
360 "movd 132(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
361 "punpckldq 80(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
362 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
363 "movd %%mm5,60(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
364 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
365 "movd %%mm5,8(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
366 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
367 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
368 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
369 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
370 "movd 8(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
371 "punpckldq 60(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
372 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
373 "movd 8(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
374 "punpckldq 60(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
375 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
376 "movd %%mm5,256(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
377 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
378 "movd %%mm5,1920(%%"REG_D")\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
379 "movq 8(%%"REG_a"),%%mm2\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
380 "movd "MANGLE(COS9)"+28,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
381 "punpckldq %%mm3,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
382 "pfmul %%mm3,%%mm2\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
383 "pfsub %%mm0,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
384 "movq 40(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
385 "movd "MANGLE(COS9)"+4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
386 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
387 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
388 "pfadd %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
389 "movq 56(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
390 "movd "MANGLE(COS9)"+20,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
391 "punpckldq %%mm4,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
392 "pfmul %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
393 "pfsub %%mm3,%%mm2\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
394 "movq (%%"REG_a"),%%mm3\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
395 "movq 16(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
396 "movd "MANGLE(COS9)"+16,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
397 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
398 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
399 "pfsub %%mm4,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
400 "movq 32(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
401 "movd "MANGLE(COS9)"+32,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
402 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
403 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
404 "pfadd %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
405 "pfadd %%mm1,%%mm3\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
406 "movq 64(%%"REG_a"),%%mm4\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
407 "movd "MANGLE(COS9)"+8,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
408 "punpckldq %%mm5,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
409 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
410 "pfsub %%mm4,%%mm3\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
411 "movq %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
412 "pfadd %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
413 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
414 "punpckldq "MANGLE(tfcos36)"+12,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
415 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
416 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
417 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
418 "movd 120(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
419 "punpckldq 92(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
420 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
421 "movd %%mm5,48(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
422 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
423 "movd %%mm5,20(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
424 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
425 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
426 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
427 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
428 "movd 20(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
429 "punpckldq 48(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
430 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
431 "movd 20(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
432 "punpckldq 48(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
433 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
434 "movd %%mm5,640(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
435 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
436 "movd %%mm5,1536(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
437 "movq %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
438 "pfsub %%mm2,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
439 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
440 "punpckldq "MANGLE(tfcos36)"+20,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
441 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
442 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
443 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
444 "movd 128(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
445 "punpckldq 84(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
446 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
447 "movd %%mm5,56(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
448 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
449 "movd %%mm5,12(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
450 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
451 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
452 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
453 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
454 "movd 12(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
455 "punpckldq 56(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
456 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
457 "movd 12(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
458 "punpckldq 56(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
459 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
460 "movd %%mm5,384(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
461 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
462 "movd %%mm5,1792(%%"REG_D")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
463
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
464 "movq (%%"REG_a"),%%mm4\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
465 "movq 16(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
466 "pfsub %%mm3,%%mm4\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
467 "movq 32(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
468 "pfadd %%mm3,%%mm4\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
469 "movq 48(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
470 "pfsub %%mm3,%%mm4\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
471 "movq 64(%%"REG_a"),%%mm3\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
472 "pfadd %%mm3,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
473 "movq %%mm7,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
474 "punpckldq "MANGLE(tfcos36)"+16,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
475 "pfmul %%mm5,%%mm4\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
476 "movq %%mm4,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
477 "pfacc %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
478 "movd 124(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
479 "punpckldq 88(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
480 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
481 "movd %%mm5,52(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
482 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
483 "movd %%mm5,16(%%"REG_c")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
484 "movq %%mm4,%%mm6\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
485 "punpckldq %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
486 "pfsub %%mm6,%%mm5\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
487 "punpckhdq %%mm5,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
488 "movd 16(%%"REG_d"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
489 "punpckldq 52(%%"REG_d"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
490 "pfmul %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
491 "movd 16(%%"REG_S"),%%mm6\n\t"
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
492 "punpckldq 52(%%"REG_S"),%%mm6\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
493 "pfadd %%mm6,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
494 "movd %%mm5,512(%%"REG_D")\n\t"
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
495 "psrlq $32,%%mm5\n\t"
31215
d0f70692a140 Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents: 31206
diff changeset
496 "movd %%mm5,1664(%%"REG_D")\n\t"
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
497
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
498 "femms\n\t"
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
499 :
31206
283c0e58d491 Use edi instead of ebx to avoid issues with PIC.
reimar
parents: 30990
diff changeset
500 : "a" (inbuf), "S" (o1), "c" (o2), "d" (wintab), "D" (tsbuf)
30990
0ad2da052b2e the great MPlayer tab removal: part I
diego
parents: 30167
diff changeset
501 : "memory");
10322
9163bdb578a6 moved 3dnow and 3dnowex dct36 optimisations into gcc inline assembly
alex
parents:
diff changeset
502 }