annotate mp3lib/dct36_k7.s @ 5338:2819346c6049

10l
author michael
date Mon, 25 Mar 2002 16:38:13 +0000
parents 59b0a9ec8604
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
736
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
1 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
2 /// Replacement of dct36() with AMD's 3DNowEx(DSP)! SIMD operations support
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
3 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
4 /// This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
5 /// <squash@mb.kcom.ne.jp>,only some types of changes have been made:
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
6 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
7 /// - added new opcode PSWAPD
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
8 /// - change function name for support 3DNowEx! automatic detect
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
9 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
10 /// note: because K7 processors are an aggresive out-of-order three-way
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
11 /// superscalar ones instruction order is not significand for them.
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
12 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
13 /// Modified by Nick Kurshev <nickols_k@mail.ru>
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
14 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
15 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
16 / dct36_3dnow.s - 3DNow! optimized dct36()
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
17 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
18 / This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
19 / <squash@mb.kcom.ne.jp>,only two types of changes have been made:
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
20 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
21 / - remove PREFETCH instruction for speedup
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
22 / - change function name for support 3DNow! automatic detect
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
23 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
24 / You can find Kashiyama's original 3dnow! support patch
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
25 / (for mpg123-0.59o) at
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
26 / http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
27 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
28 / by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
29 / <kim@comtec.co.jp> - after 1.Apr.1999
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
30 /
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
31
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
32 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
33 /// Replacement of dct36() with AMD's 3DNow! SIMD operations support
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
34 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
35 /// Syuuhei Kashiyama <squash@mb.kcom.ne.jp>
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
36 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
37 /// The author of this program disclaim whole expressed or implied
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
38 /// warranties with regard to this program, and in no event shall the
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
39 /// author of this program liable to whatever resulted from the use of
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
40 /// this program. Use it at your own risk.
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
41 ///
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
42
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
43 .globl dct36_3dnowex
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
44 .type dct36_3dnowex,@function
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
45 dct36_3dnowex:
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
46 pushl %ebp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
47 movl %esp,%ebp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
48 subl $120,%esp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
49 pushl %esi
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
50 pushl %ebx
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
51 movl 8(%ebp),%eax
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
52 movl 12(%ebp),%esi
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
53 movl 16(%ebp),%ecx
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
54 movl 20(%ebp),%edx
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
55 movl 24(%ebp),%ebx
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
56 leal -128(%ebp),%esp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
57
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
58 femms
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
59 movq (%eax),%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
60 movq 4(%eax),%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
61 pfadd %mm1,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
62 movq %mm0,4(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
63 psrlq $32,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
64 movq 12(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
65 punpckldq %mm2,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
66 pfadd %mm2,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
67 movq %mm1,12(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
68 psrlq $32,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
69 movq 20(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
70 punpckldq %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
71 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
72 movq %mm2,20(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
73 psrlq $32,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
74 movq 28(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
75 punpckldq %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
76 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
77 movq %mm3,28(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
78 psrlq $32,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
79 movq 36(%eax),%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
80 punpckldq %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
81 pfadd %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
82 movq %mm4,36(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
83 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
84 movq 44(%eax),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
85 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
86 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
87 movq %mm5,44(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
88 psrlq $32,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
89 movq 52(%eax),%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
90 punpckldq %mm7,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
91 pfadd %mm7,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
92 movq %mm6,52(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
93 psrlq $32,%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
94 movq 60(%eax),%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
95 punpckldq %mm0,%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
96 pfadd %mm0,%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
97 movq %mm7,60(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
98 psrlq $32,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
99 movd 68(%eax),%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
100 pfadd %mm1,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
101 movd %mm0,68(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
102 movd 4(%eax),%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
103 movd 12(%eax),%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
104 punpckldq %mm1,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
105 punpckldq 20(%eax),%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
106 pfadd %mm1,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
107 movd %mm0,12(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
108 psrlq $32,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
109 movd %mm0,20(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
110 psrlq $32,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
111 movd 28(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
112 punpckldq %mm2,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
113 punpckldq 36(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
114 pfadd %mm2,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
115 movd %mm1,28(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
116 psrlq $32,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
117 movd %mm1,36(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
118 psrlq $32,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
119 movd 44(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
120 punpckldq %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
121 punpckldq 52(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
122 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
123 movd %mm2,44(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
124 psrlq $32,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
125 movd %mm2,52(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
126 psrlq $32,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
127 movd 60(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
128 punpckldq %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
129 punpckldq 68(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
130 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
131 movd %mm3,60(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
132 psrlq $32,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
133 movd %mm3,68(%eax)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
134 movq 24(%eax),%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
135 movq 48(%eax),%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
136 movd COS9+12,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
137 punpckldq %mm2,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
138 movd COS9+24,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
139 punpckldq %mm3,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
140 pfmul %mm2,%mm0
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
141 pfmul %mm3,%mm1
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
142 pushl %eax
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
143 movl $1,%eax
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
144 movd %eax,%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
145 pi2fd %mm7,%mm7
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
146 popl %eax
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
147 movq 8(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
148 movd COS9+4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
149 punpckldq %mm3,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
150 pfmul %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
151 pfadd %mm0,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
152 movq 40(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
153 movd COS9+20,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
154 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
155 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
156 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
157 movq 56(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
158 movd COS9+28,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
159 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
160 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
161 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
162 movq (%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
163 movq 16(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
164 movd COS9+8,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
165 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
166 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
167 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
168 movq 32(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
169 movd COS9+16,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
170 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
171 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
172 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
173 pfadd %mm1,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
174 movq 64(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
175 movd COS9+32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
176 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
177 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
178 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
179 movq %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
180 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
181 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
182 punpckldq tfcos36+0,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
183 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
184 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
185 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
186 movd 108(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
187 punpckldq 104(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
188 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
189 pswapd %mm5, %mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
190 movq %mm5, 32(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
191 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
192 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
193 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
194 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
195 movd 32(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
196 punpckldq 36(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
197 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
198 movd 32(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
199 punpckldq 36(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
200 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
201 movd %mm5,1024(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
202 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
203 movd %mm5,1152(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
204 movq %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
205 pfsub %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
206 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
207 punpckldq tfcos36+32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
208 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
209 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
210 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
211 movd 140(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
212 punpckldq 72(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
213 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
214 movd %mm5,68(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
215 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
216 movd %mm5,0(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
217 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
218 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
219 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
220 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
221 movd 0(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
222 punpckldq 68(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
223 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
224 movd 0(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
225 punpckldq 68(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
226 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
227 movd %mm5,0(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
228 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
229 movd %mm5,2176(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
230 movq 8(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
231 movq 40(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
232 pfsub %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
233 movq 56(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
234 pfsub %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
235 movd COS9+12,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
236 punpckldq %mm3,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
237 pfmul %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
238 movq 16(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
239 movq 32(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
240 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
241 movq 64(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
242 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
243 movd COS9+24,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
244 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
245 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
246 movq 48(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
247 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
248 movq (%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
249 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
250 movq %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
251 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
252 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
253 punpckldq tfcos36+4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
254 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
255 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
256 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
257 movd 112(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
258 punpckldq 100(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
259 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
260 movd %mm5,40(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
261 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
262 movd %mm5,28(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
263 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
264 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
265 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
266 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
267 movd 28(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
268 punpckldq 40(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
269 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
270 movd 28(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
271 punpckldq 40(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
272 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
273 movd %mm5,896(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
274 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
275 movd %mm5,1280(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
276 movq %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
277 pfsub %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
278 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
279 punpckldq tfcos36+28,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
280 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
281 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
282 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
283 movd 136(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
284 punpckldq 76(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
285 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
286 movd %mm5,64(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
287 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
288 movd %mm5,4(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
289 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
290 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
291 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
292 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
293 movd 4(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
294 punpckldq 64(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
295 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
296 movd 4(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
297 punpckldq 64(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
298 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
299 movd %mm5,128(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
300 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
301 movd %mm5,2048(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
302
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
303 movq 8(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
304 movd COS9+20,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
305 punpckldq %mm3,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
306 pfmul %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
307 pfsub %mm0,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
308 movq 40(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
309 movd COS9+28,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
310 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
311 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
312 pfsub %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
313 movq 56(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
314 movd COS9+4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
315 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
316 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
317 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
318 movq (%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
319 movq 16(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
320 movd COS9+32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
321 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
322 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
323 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
324 movq 32(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
325 movd COS9+8,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
326 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
327 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
328 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
329 pfadd %mm1,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
330 movq 64(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
331 movd COS9+16,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
332 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
333 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
334 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
335 movq %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
336 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
337 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
338 punpckldq tfcos36+8,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
339 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
340 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
341 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
342 movd 116(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
343 punpckldq 96(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
344 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
345 movd %mm5,44(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
346 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
347 movd %mm5,24(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
348 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
349 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
350 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
351 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
352 movd 24(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
353 punpckldq 44(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
354 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
355 movd 24(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
356 punpckldq 44(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
357 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
358 movd %mm5,768(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
359 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
360 movd %mm5,1408(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
361 movq %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
362 pfsub %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
363 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
364 punpckldq tfcos36+24,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
365 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
366 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
367 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
368 movd 132(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
369 punpckldq 80(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
370 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
371 movd %mm5,60(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
372 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
373 movd %mm5,8(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
374 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
375 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
376 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
377 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
378 movd 8(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
379 punpckldq 60(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
380 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
381 movd 8(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
382 punpckldq 60(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
383 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
384 movd %mm5,256(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
385 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
386 movd %mm5,1920(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
387 movq 8(%eax),%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
388 movd COS9+28,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
389 punpckldq %mm3,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
390 pfmul %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
391 pfsub %mm0,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
392 movq 40(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
393 movd COS9+4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
394 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
395 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
396 pfadd %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
397 movq 56(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
398 movd COS9+20,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
399 punpckldq %mm4,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
400 pfmul %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
401 pfsub %mm3,%mm2
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
402 movq (%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
403 movq 16(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
404 movd COS9+16,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
405 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
406 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
407 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
408 movq 32(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
409 movd COS9+32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
410 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
411 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
412 pfadd %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
413 pfadd %mm1,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
414 movq 64(%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
415 movd COS9+8,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
416 punpckldq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
417 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
418 pfsub %mm4,%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
419 movq %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
420 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
421 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
422 punpckldq tfcos36+12,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
423 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
424 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
425 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
426 movd 120(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
427 punpckldq 92(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
428 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
429 movd %mm5,48(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
430 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
431 movd %mm5,20(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
432 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
433 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
434 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
435 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
436 movd 20(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
437 punpckldq 48(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
438 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
439 movd 20(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
440 punpckldq 48(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
441 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
442 movd %mm5,640(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
443 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
444 movd %mm5,1536(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
445 movq %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
446 pfsub %mm2,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
447 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
448 punpckldq tfcos36+20,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
449 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
450 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
451 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
452 movd 128(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
453 punpckldq 84(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
454 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
455 movd %mm5,56(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
456 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
457 movd %mm5,12(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
458 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
459 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
460 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
461 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
462 movd 12(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
463 punpckldq 56(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
464 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
465 movd 12(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
466 punpckldq 56(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
467 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
468 movd %mm5,384(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
469 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
470 movd %mm5,1792(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
471
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
472 movq (%eax),%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
473 movq 16(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
474 pfsub %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
475 movq 32(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
476 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
477 movq 48(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
478 pfsub %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
479 movq 64(%eax),%mm3
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
480 pfadd %mm3,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
481 movq %mm7,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
482 punpckldq tfcos36+16,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
483 pfmul %mm5,%mm4
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
484 movq %mm4,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
485 pfacc %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
486 movd 124(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
487 punpckldq 88(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
488 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
489 movd %mm5,52(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
490 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
491 movd %mm5,16(%ecx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
492 movq %mm4,%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
493 punpckldq %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
494 pfsub %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
495 punpckhdq %mm5,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
496 movd 16(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
497 punpckldq 52(%edx),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
498 pfmul %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
499 movd 16(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
500 punpckldq 52(%esi),%mm6
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
501 pfadd %mm6,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
502 movd %mm5,512(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
503 psrlq $32,%mm5
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
504 movd %mm5,1664(%ebx)
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
505
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
506 femms
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
507 popl %ebx
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
508 popl %esi
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
509 movl %ebp,%esp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
510 popl %ebp
59b0a9ec8604 K7 3dnow-dsp support
nickols_k
parents:
diff changeset
511 ret