comparison mp3lib/dct64_3dnow.s @ 1245:03b7e2955a20

Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
author nick
date Fri, 29 Jun 2001 17:55:35 +0000
parents 3b5f5d1c5041
children 2864e32cd267
comparison
equal deleted inserted replaced
1244:a2c71bf9a7d3 1245:03b7e2955a20
1 /// 1 # This code was taken from http://www.mpg123.org
2 /// Replacement of dct64() with AMD's 3DNow! SIMD operations support 2 # See ChangeLog of mpg123-0.59s-pre.1 for detail
3 /// 3 # Applied to mplayer by Nick Kurshev <nickols_k@mail.ru>
4 /// Syuuhei Kashiyama <squash@mb.kcom.ne.jp> 4 # Partial 3dnow! optimization by Nick Kurshev
5 /// 5 #
6 /// The author of this program disclaim whole expressed or implied 6 # TODO: finish 3dnow! optimization at least in scalar mode
7 /// warranties with regard to this program, and in no event shall the 7 #
8 /// author of this program liable to whatever resulted from the use of 8
9 /// this program. Use it at your own risk. 9 .data
10 /// 10 .align 8
11 11 plus_minus_3dnow: .long 0x00000000, 0x80000000
12 .globl dct64_3dnow 12 costab:
13 .type dct64_3dnow,@function 13 .long 1056974725
14 dct64_3dnow: 14 .long 1057056395
15 subl $256,%esp 15 .long 1057223771
16 pushl %ebp 16 .long 1057485416
17 pushl %edi 17 .long 1057855544
18 pushl %esi 18 .long 1058356026
19 pushl %ebx 19 .long 1059019886
20 leal 16(%esp),%ebx 20 .long 1059897405
21 movl 284(%esp),%edi 21 .long 1061067246
22 movl 276(%esp),%ebp 22 .long 1062657950
23 movl 280(%esp),%edx 23 .long 1064892987
24 leal 128(%ebx),%esi 24 .long 1066774581
25 25 .long 1069414683
26 / femms 26 .long 1073984175
27 27 .long 1079645762
28 // 1 28 .long 1092815430
29 movl pnts,%eax 29 .long 1057005197
30 movq 0(%edi),%mm0 30 .long 1057342072
31 movq %mm0,%mm1 31 .long 1058087743
32 movd 124(%edi),%mm2 32 .long 1059427869
33 punpckldq 120(%edi),%mm2 33 .long 1061799040
34 movq 0(%eax),%mm3 34 .long 1065862217
35 pfadd %mm2,%mm0 35 .long 1071413542
36 movq %mm0,0(%ebx) 36 .long 1084439708
37 pfsub %mm2,%mm1 37 .long 1057128951
38 pfmul %mm3,%mm1 38 .long 1058664893
39 movd %mm1,124(%ebx) 39 .long 1063675095
40 psrlq $32,%mm1 40 .long 1076102863
41 movd %mm1,120(%ebx) 41 .long 1057655764
42 movq 8(%edi),%mm4 42 .long 1067924853
43 movq %mm4,%mm5 43 .long 1060439283
44 movd 116(%edi),%mm6 44
45 punpckldq 112(%edi),%mm6 45 .text
46 movq 8(%eax),%mm7 46
47 pfadd %mm6,%mm4 47 .align 16
48 movq %mm4,8(%ebx) 48
49 pfsub %mm6,%mm5 49 .globl dct64_MMX_3dnow
50 pfmul %mm7,%mm5 50 dct64_MMX_3dnow:
51 movd %mm5,116(%ebx) 51 pushl %ebx
52 psrlq $32,%mm5 52 pushl %esi
53 movd %mm5,112(%ebx) 53 pushl %edi
54 movq 16(%edi),%mm0 54 subl $256,%esp
55 movq %mm0,%mm1 55 movl 280(%esp),%eax
56 movd 108(%edi),%mm2 56
57 punpckldq 104(%edi),%mm2 57 leal 128(%esp),%edx
58 movq 16(%eax),%mm3 58 movl 272(%esp),%esi
59 pfadd %mm2,%mm0 59 movl 276(%esp),%edi
60 movq %mm0,16(%ebx) 60 movl $costab,%ebx
61 pfsub %mm2,%mm1 61 orl %ecx,%ecx
62 pfmul %mm3,%mm1 62 movl %esp,%ecx
63 movd %mm1,108(%ebx) 63 femms
64 psrlq $32,%mm1 64 /* Phase 1*/
65 movd %mm1,104(%ebx) 65 movq (%eax), %mm0
66 movq 24(%edi),%mm4 66 movq 8(%eax), %mm4
67 movq %mm4,%mm5 67 movq %mm0, %mm3
68 movd 100(%edi),%mm6 68 movq %mm4, %mm7
69 punpckldq 96(%edi),%mm6 69 movq 120(%eax), %mm1
70 movq 24(%eax),%mm7 70 movq 112(%eax), %mm5
71 pfadd %mm6,%mm4 71 /* n.b.: pswapd*/
72 movq %mm4,24(%ebx) 72 movq %mm1, %mm2
73 pfsub %mm6,%mm5 73 movq %mm5, %mm6
74 pfmul %mm7,%mm5 74 psrlq $32, %mm1
75 movd %mm5,100(%ebx) 75 psrlq $32, %mm5
76 psrlq $32,%mm5 76 punpckldq %mm2, %mm1
77 movd %mm5,96(%ebx) 77 punpckldq %mm6, %mm5
78 movq 32(%edi),%mm0 78 /**/
79 movq %mm0,%mm1 79 pfadd %mm1, %mm0
80 movd 92(%edi),%mm2 80 pfadd %mm5, %mm4
81 punpckldq 88(%edi),%mm2 81 movq %mm0, (%edx)
82 movq 32(%eax),%mm3 82 movq %mm4, 8(%edx)
83 pfadd %mm2,%mm0 83 pfsub %mm1, %mm3
84 movq %mm0,32(%ebx) 84 pfsub %mm5, %mm7
85 pfsub %mm2,%mm1 85 pfmul (%ebx), %mm3
86 pfmul %mm3,%mm1 86 pfmul 8(%ebx), %mm7
87 movd %mm1,92(%ebx) 87 movd %mm3, 124(%edx)
88 psrlq $32,%mm1 88 movd %mm7, 116(%edx)
89 movd %mm1,88(%ebx) 89 psrlq $32, %mm3
90 movq 40(%edi),%mm4 90 psrlq $32, %mm7
91 movq %mm4,%mm5 91 movd %mm3, 120(%edx)
92 movd 84(%edi),%mm6 92 movd %mm7, 112(%edx)
93 punpckldq 80(%edi),%mm6 93
94 movq 40(%eax),%mm7 94 movq 16(%eax), %mm0
95 pfadd %mm6,%mm4 95 movq 24(%eax), %mm4
96 movq %mm4,40(%ebx) 96 movq %mm0, %mm3
97 pfsub %mm6,%mm5 97 movq %mm4, %mm7
98 pfmul %mm7,%mm5 98 movq 104(%eax), %mm1
99 movd %mm5,84(%ebx) 99 movq 96(%eax), %mm5
100 psrlq $32,%mm5 100 /* n.b.: pswapd*/
101 movd %mm5,80(%ebx) 101 movq %mm1, %mm2
102 movq 48(%edi),%mm0 102 movq %mm5, %mm6
103 movq %mm0,%mm1 103 psrlq $32, %mm1
104 movd 76(%edi),%mm2 104 psrlq $32, %mm5
105 punpckldq 72(%edi),%mm2 105 punpckldq %mm2, %mm1
106 movq 48(%eax),%mm3 106 punpckldq %mm6, %mm5
107 pfadd %mm2,%mm0 107 /**/
108 movq %mm0,48(%ebx) 108 pfadd %mm1, %mm0
109 pfsub %mm2,%mm1 109 pfadd %mm5, %mm4
110 pfmul %mm3,%mm1 110 movq %mm0, 16(%edx)
111 movd %mm1,76(%ebx) 111 movq %mm4, 24(%edx)
112 psrlq $32,%mm1 112 pfsub %mm1, %mm3
113 movd %mm1,72(%ebx) 113 pfsub %mm5, %mm7
114 movq 56(%edi),%mm4 114 pfmul 16(%ebx), %mm3
115 movq %mm4,%mm5 115 pfmul 24(%ebx), %mm7
116 movd 68(%edi),%mm6 116 movd %mm3, 108(%edx)
117 punpckldq 64(%edi),%mm6 117 movd %mm7, 100(%edx)
118 movq 56(%eax),%mm7 118 psrlq $32, %mm3
119 pfadd %mm6,%mm4 119 psrlq $32, %mm7
120 movq %mm4,56(%ebx) 120 movd %mm3, 104(%edx)
121 pfsub %mm6,%mm5 121 movd %mm7, 96(%edx)
122 pfmul %mm7,%mm5 122
123 movd %mm5,68(%ebx) 123 movq 32(%eax), %mm0
124 psrlq $32,%mm5 124 movq 40(%eax), %mm4
125 movd %mm5,64(%ebx) 125 movq %mm0, %mm3
126 126 movq %mm4, %mm7
127 // 2 127 movq 88(%eax), %mm1
128 movl pnts+4,%eax 128 movq 80(%eax), %mm5
129 / 0, 14 129 /* n.b.: pswapd*/
130 movq 0(%ebx),%mm0 130 movq %mm1, %mm2
131 movq %mm0,%mm1 131 movq %mm5, %mm6
132 movd 60(%ebx),%mm2 132 psrlq $32, %mm1
133 punpckldq 56(%ebx),%mm2 133 psrlq $32, %mm5
134 movq 0(%eax),%mm3 134 punpckldq %mm2, %mm1
135 pfadd %mm2,%mm0 135 punpckldq %mm6, %mm5
136 movq %mm0,0(%esi) 136 /**/
137 pfsub %mm2,%mm1 137 pfadd %mm1, %mm0
138 pfmul %mm3,%mm1 138 pfadd %mm5, %mm4
139 movd %mm1,60(%esi) 139 movq %mm0, 32(%edx)
140 psrlq $32,%mm1 140 movq %mm4, 40(%edx)
141 movd %mm1,56(%esi) 141 pfsub %mm1, %mm3
142 / 16, 30 142 pfsub %mm5, %mm7
143 movq 64(%ebx),%mm0 143 pfmul 32(%ebx), %mm3
144 movq %mm0,%mm1 144 pfmul 40(%ebx), %mm7
145 movd 124(%ebx),%mm2 145 movd %mm3, 92(%edx)
146 punpckldq 120(%ebx),%mm2 146 movd %mm7, 84(%edx)
147 pfadd %mm2,%mm0 147 psrlq $32, %mm3
148 movq %mm0,64(%esi) 148 psrlq $32, %mm7
149 pfsubr %mm2,%mm1 149 movd %mm3, 88(%edx)
150 pfmul %mm3,%mm1 150 movd %mm7, 80(%edx)
151 movd %mm1,124(%esi) 151
152 psrlq $32,%mm1 152 movq 48(%eax), %mm0
153 movd %mm1,120(%esi) 153 movq 56(%eax), %mm4
154 movq 8(%ebx),%mm4 154 movq %mm0, %mm3
155 / 2, 12 155 movq %mm4, %mm7
156 movq %mm4,%mm5 156 movq 72(%eax), %mm1
157 movd 52(%ebx),%mm6 157 movq 64(%eax), %mm5
158 punpckldq 48(%ebx),%mm6 158 /* n.b.: pswapd*/
159 movq 8(%eax),%mm7 159 movq %mm1, %mm2
160 pfadd %mm6,%mm4 160 movq %mm5, %mm6
161 movq %mm4,8(%esi) 161 psrlq $32, %mm1
162 pfsub %mm6,%mm5 162 psrlq $32, %mm5
163 pfmul %mm7,%mm5 163 punpckldq %mm2, %mm1
164 movd %mm5,52(%esi) 164 punpckldq %mm6, %mm5
165 psrlq $32,%mm5 165 /**/
166 movd %mm5,48(%esi) 166 pfadd %mm1, %mm0
167 movq 72(%ebx),%mm4 167 pfadd %mm5, %mm4
168 / 18, 28 168 movq %mm0, 48(%edx)
169 movq %mm4,%mm5 169 movq %mm4, 56(%edx)
170 movd 116(%ebx),%mm6 170 pfsub %mm1, %mm3
171 punpckldq 112(%ebx),%mm6 171 pfsub %mm5, %mm7
172 pfadd %mm6,%mm4 172 pfmul 48(%ebx), %mm3
173 movq %mm4,72(%esi) 173 pfmul 56(%ebx), %mm7
174 pfsubr %mm6,%mm5 174 movd %mm3, 76(%edx)
175 pfmul %mm7,%mm5 175 movd %mm7, 68(%edx)
176 movd %mm5,116(%esi) 176 psrlq $32, %mm3
177 psrlq $32,%mm5 177 psrlq $32, %mm7
178 movd %mm5,112(%esi) 178 movd %mm3, 72(%edx)
179 movq 16(%ebx),%mm0 179 movd %mm7, 64(%edx)
180 / 4, 10 180
181 movq %mm0,%mm1 181 /* Phase 2*/
182 movd 44(%ebx),%mm2 182
183 punpckldq 40(%ebx),%mm2 183 movq (%edx), %mm0
184 movq 16(%eax),%mm3 184 movq 8(%edx), %mm4
185 pfadd %mm2,%mm0 185 movq %mm0, %mm3
186 movq %mm0,16(%esi) 186 movq %mm4, %mm7
187 pfsub %mm2,%mm1 187 movq 56(%edx), %mm1
188 pfmul %mm3,%mm1 188 movq 48(%edx), %mm5
189 movd %mm1,44(%esi) 189 /* n.b.: pswapd*/
190 psrlq $32,%mm1 190 movq %mm1, %mm2
191 movd %mm1,40(%esi) 191 movq %mm5, %mm6
192 movq 80(%ebx),%mm0 192 psrlq $32, %mm1
193 / 20, 26 193 psrlq $32, %mm5
194 movq %mm0,%mm1 194 punpckldq %mm2, %mm1
195 movd 108(%ebx),%mm2 195 punpckldq %mm6, %mm5
196 punpckldq 104(%ebx),%mm2 196 /**/
197 pfadd %mm2,%mm0 197 pfadd %mm1, %mm0
198 movq %mm0,80(%esi) 198 pfadd %mm5, %mm4
199 pfsubr %mm2,%mm1 199 movq %mm0, (%ecx)
200 pfmul %mm3,%mm1 200 movq %mm4, 8(%ecx)
201 movd %mm1,108(%esi) 201 pfsub %mm1, %mm3
202 psrlq $32,%mm1 202 pfsub %mm5, %mm7
203 movd %mm1,104(%esi) 203 pfmul 64(%ebx), %mm3
204 movq 24(%ebx),%mm4 204 pfmul 72(%ebx), %mm7
205 / 6, 8 205 movd %mm3, 60(%ecx)
206 movq %mm4,%mm5 206 movd %mm7, 52(%ecx)
207 movd 36(%ebx),%mm6 207 psrlq $32, %mm3
208 punpckldq 32(%ebx),%mm6 208 psrlq $32, %mm7
209 movq 24(%eax),%mm7 209 movd %mm3, 56(%ecx)
210 pfadd %mm6,%mm4 210 movd %mm7, 48(%ecx)
211 movq %mm4,24(%esi) 211
212 pfsub %mm6,%mm5 212 movq 16(%edx), %mm0
213 pfmul %mm7,%mm5 213 movq 24(%edx), %mm4
214 movd %mm5,36(%esi) 214 movq %mm0, %mm3
215 psrlq $32,%mm5 215 movq %mm4, %mm7
216 movd %mm5,32(%esi) 216 movq 40(%edx), %mm1
217 movq 88(%ebx),%mm4 217 movq 32(%edx), %mm5
218 / 22, 24 218 /* n.b.: pswapd*/
219 movq %mm4,%mm5 219 movq %mm1, %mm2
220 movd 100(%ebx),%mm6 220 movq %mm5, %mm6
221 punpckldq 96(%ebx),%mm6 221 psrlq $32, %mm1
222 pfadd %mm6,%mm4 222 psrlq $32, %mm5
223 movq %mm4,88(%esi) 223 punpckldq %mm2, %mm1
224 pfsubr %mm6,%mm5 224 punpckldq %mm6, %mm5
225 pfmul %mm7,%mm5 225 /**/
226 movd %mm5,100(%esi) 226 pfadd %mm1, %mm0
227 psrlq $32,%mm5 227 pfadd %mm5, %mm4
228 movd %mm5,96(%esi) 228 movq %mm0, 16(%ecx)
229 229 movq %mm4, 24(%ecx)
230 // 3 230 pfsub %mm1, %mm3
231 movl pnts+8,%eax 231 pfsub %mm5, %mm7
232 movq 0(%eax),%mm0 232 pfmul 80(%ebx), %mm3
233 movq 8(%eax),%mm1 233 pfmul 88(%ebx), %mm7
234 movq 0(%esi),%mm2 234 movd %mm3, 44(%ecx)
235 / 0, 6 235 movd %mm7, 36(%ecx)
236 movq %mm2,%mm3 236 psrlq $32, %mm3
237 movd 28(%esi),%mm4 237 psrlq $32, %mm7
238 punpckldq 24(%esi),%mm4 238 movd %mm3, 40(%ecx)
239 pfadd %mm4,%mm2 239 movd %mm7, 32(%ecx)
240 pfsub %mm4,%mm3 240
241 pfmul %mm0,%mm3 241 /* Phase 3*/
242 movq %mm2,0(%ebx) 242
243 movd %mm3,28(%ebx) 243 movq 64(%edx), %mm0
244 psrlq $32,%mm3 244 movq 72(%edx), %mm4
245 movd %mm3,24(%ebx) 245 movq %mm0, %mm3
246 movq 8(%esi),%mm5 246 movq %mm4, %mm7
247 / 2, 4 247 movq 120(%edx), %mm1
248 movq %mm5,%mm6 248 movq 112(%edx), %mm5
249 movd 20(%esi),%mm7 249 /* n.b.: pswapd*/
250 punpckldq 16(%esi),%mm7 250 movq %mm1, %mm2
251 pfadd %mm7,%mm5 251 movq %mm5, %mm6
252 pfsub %mm7,%mm6 252 psrlq $32, %mm1
253 pfmul %mm1,%mm6 253 psrlq $32, %mm5
254 movq %mm5,8(%ebx) 254 punpckldq %mm2, %mm1
255 movd %mm6,20(%ebx) 255 punpckldq %mm6, %mm5
256 psrlq $32,%mm6 256 /**/
257 movd %mm6,16(%ebx) 257 pfadd %mm1, %mm0
258 movq 32(%esi),%mm2 258 pfadd %mm5, %mm4
259 / 8, 14 259 movq %mm0, 64(%ecx)
260 movq %mm2,%mm3 260 movq %mm4, 72(%ecx)
261 movd 60(%esi),%mm4 261 pfsubr %mm1, %mm3
262 punpckldq 56(%esi),%mm4 262 pfsubr %mm5, %mm7
263 pfadd %mm4,%mm2 263 pfmul 64(%ebx), %mm3
264 pfsubr %mm4,%mm3 264 pfmul 72(%ebx), %mm7
265 pfmul %mm0,%mm3 265 movd %mm3, 124(%ecx)
266 movq %mm2,32(%ebx) 266 movd %mm7, 116(%ecx)
267 movd %mm3,60(%ebx) 267 psrlq $32, %mm3
268 psrlq $32,%mm3 268 psrlq $32, %mm7
269 movd %mm3,56(%ebx) 269 movd %mm3, 120(%ecx)
270 movq 40(%esi),%mm5 270 movd %mm7, 112(%ecx)
271 / 10, 12 271
272 movq %mm5,%mm6 272 movq 80(%edx), %mm0
273 movd 52(%esi),%mm7 273 movq 88(%edx), %mm4
274 punpckldq 48(%esi),%mm7 274 movq %mm0, %mm3
275 pfadd %mm7,%mm5 275 movq %mm4, %mm7
276 pfsubr %mm7,%mm6 276 movq 104(%edx), %mm1
277 pfmul %mm1,%mm6 277 movq 96(%edx), %mm5
278 movq %mm5,40(%ebx) 278 /* n.b.: pswapd*/
279 movd %mm6,52(%ebx) 279 movq %mm1, %mm2
280 psrlq $32,%mm6 280 movq %mm5, %mm6
281 movd %mm6,48(%ebx) 281 psrlq $32, %mm1
282 movq 64(%esi),%mm2 282 psrlq $32, %mm5
283 / 16, 22 283 punpckldq %mm2, %mm1
284 movq %mm2,%mm3 284 punpckldq %mm6, %mm5
285 movd 92(%esi),%mm4 285 /**/
286 punpckldq 88(%esi),%mm4 286 pfadd %mm1, %mm0
287 pfadd %mm4,%mm2 287 pfadd %mm5, %mm4
288 pfsub %mm4,%mm3 288 movq %mm0, 80(%ecx)
289 pfmul %mm0,%mm3 289 movq %mm4, 88(%ecx)
290 movq %mm2,64(%ebx) 290 pfsubr %mm1, %mm3
291 movd %mm3,92(%ebx) 291 pfsubr %mm5, %mm7
292 psrlq $32,%mm3 292 pfmul 80(%ebx), %mm3
293 movd %mm3,88(%ebx) 293 pfmul 88(%ebx), %mm7
294 movq 72(%esi),%mm5 294 movd %mm3, 108(%ecx)
295 / 18, 20 295 movd %mm7, 100(%ecx)
296 movq %mm5,%mm6 296 psrlq $32, %mm3
297 movd 84(%esi),%mm7 297 psrlq $32, %mm7
298 punpckldq 80(%esi),%mm7 298 movd %mm3, 104(%ecx)
299 pfadd %mm7,%mm5 299 movd %mm7, 96(%ecx)
300 pfsub %mm7,%mm6 300
301 pfmul %mm1,%mm6 301 /* Phase 4*/
302 movq %mm5,72(%ebx) 302
303 movd %mm6,84(%ebx) 303 movq (%ecx), %mm0
304 psrlq $32,%mm6 304 movq 8(%ecx), %mm4
305 movd %mm6,80(%ebx) 305 movq %mm0, %mm3
306 movq 96(%esi),%mm2 306 movq %mm4, %mm7
307 / 24, 30 307 movq 24(%ecx), %mm1
308 movq %mm2,%mm3 308 movq 16(%ecx), %mm5
309 movd 124(%esi),%mm4 309 /* n.b.: pswapd*/
310 punpckldq 120(%esi),%mm4 310 movq %mm1, %mm2
311 pfadd %mm4,%mm2 311 movq %mm5, %mm6
312 pfsubr %mm4,%mm3 312 psrlq $32, %mm1
313 pfmul %mm0,%mm3 313 psrlq $32, %mm5
314 movq %mm2,96(%ebx) 314 punpckldq %mm2, %mm1
315 movd %mm3,124(%ebx) 315 punpckldq %mm6, %mm5
316 psrlq $32,%mm3 316 /**/
317 movd %mm3,120(%ebx) 317 pfadd %mm1, %mm0
318 movq 104(%esi),%mm5 318 pfadd %mm5, %mm4
319 / 26, 28 319 movq %mm0, (%edx)
320 movq %mm5,%mm6 320 movq %mm4, 8(%edx)
321 movd 116(%esi),%mm7 321 pfsub %mm1, %mm3
322 punpckldq 112(%esi),%mm7 322 pfsub %mm5, %mm7
323 pfadd %mm7,%mm5 323 pfmul 96(%ebx), %mm3
324 pfsubr %mm7,%mm6 324 pfmul 104(%ebx), %mm7
325 pfmul %mm1,%mm6 325 movd %mm3, 28(%edx)
326 movq %mm5,104(%ebx) 326 movd %mm7, 20(%edx)
327 movd %mm6,116(%ebx) 327 psrlq $32, %mm3
328 psrlq $32,%mm6 328 psrlq $32, %mm7
329 movd %mm6,112(%ebx) 329 movd %mm3, 24(%edx)
330 330 movd %mm7, 16(%edx)
331 // 4 331
332 movl pnts+12,%eax 332 movq 32(%ecx), %mm0
333 movq 0(%eax),%mm0 333 movq 40(%ecx), %mm4
334 movq 0(%ebx),%mm1 334 movq %mm0, %mm3
335 / 0 335 movq %mm4, %mm7
336 movq %mm1,%mm2 336 movq 56(%ecx), %mm1
337 movd 12(%ebx),%mm3 337 movq 48(%ecx), %mm5
338 punpckldq 8(%ebx),%mm3 338 /* n.b.: pswapd*/
339 pfadd %mm3,%mm1 339 movq %mm1, %mm2
340 pfsub %mm3,%mm2 340 movq %mm5, %mm6
341 pfmul %mm0,%mm2 341 psrlq $32, %mm1
342 movq %mm1,0(%esi) 342 psrlq $32, %mm5
343 movd %mm2,12(%esi) 343 punpckldq %mm2, %mm1
344 psrlq $32,%mm2 344 punpckldq %mm6, %mm5
345 movd %mm2,8(%esi) 345 /**/
346 movq 16(%ebx),%mm4 346 pfadd %mm1, %mm0
347 / 4 347 pfadd %mm5, %mm4
348 movq %mm4,%mm5 348 movq %mm0, 32(%edx)
349 movd 28(%ebx),%mm6 349 movq %mm4, 40(%edx)
350 punpckldq 24(%ebx),%mm6 350 pfsubr %mm1, %mm3
351 pfadd %mm6,%mm4 351 pfsubr %mm5, %mm7
352 pfsubr %mm6,%mm5 352 pfmul 96(%ebx), %mm3
353 pfmul %mm0,%mm5 353 pfmul 104(%ebx), %mm7
354 movq %mm4,16(%esi) 354 movd %mm3, 60(%edx)
355 movd %mm5,28(%esi) 355 movd %mm7, 52(%edx)
356 psrlq $32,%mm5 356 psrlq $32, %mm3
357 movd %mm5,24(%esi) 357 psrlq $32, %mm7
358 movq 32(%ebx),%mm1 358 movd %mm3, 56(%edx)
359 / 8 359 movd %mm7, 48(%edx)
360 movq %mm1,%mm2 360
361 movd 44(%ebx),%mm3 361 movq 64(%ecx), %mm0
362 punpckldq 40(%ebx),%mm3 362 movq 72(%ecx), %mm4
363 pfadd %mm3,%mm1 363 movq %mm0, %mm3
364 pfsub %mm3,%mm2 364 movq %mm4, %mm7
365 pfmul %mm0,%mm2 365 movq 88(%ecx), %mm1
366 movq %mm1,32(%esi) 366 movq 80(%ecx), %mm5
367 movd %mm2,44(%esi) 367 /* n.b.: pswapd*/
368 psrlq $32,%mm2 368 movq %mm1, %mm2
369 movd %mm2,40(%esi) 369 movq %mm5, %mm6
370 movq 48(%ebx),%mm4 370 psrlq $32, %mm1
371 / 12 371 psrlq $32, %mm5
372 movq %mm4,%mm5 372 punpckldq %mm2, %mm1
373 movd 60(%ebx),%mm6 373 punpckldq %mm6, %mm5
374 punpckldq 56(%ebx),%mm6 374 /**/
375 pfadd %mm6,%mm4 375 pfadd %mm1, %mm0
376 pfsubr %mm6,%mm5 376 pfadd %mm5, %mm4
377 pfmul %mm0,%mm5 377 movq %mm0, 64(%edx)
378 movq %mm4,48(%esi) 378 movq %mm4, 72(%edx)
379 movd %mm5,60(%esi) 379 pfsub %mm1, %mm3
380 psrlq $32,%mm5 380 pfsub %mm5, %mm7
381 movd %mm5,56(%esi) 381 pfmul 96(%ebx), %mm3
382 movq 64(%ebx),%mm1 382 pfmul 104(%ebx), %mm7
383 / 16 383 movd %mm3, 92(%edx)
384 movq %mm1,%mm2 384 movd %mm7, 84(%edx)
385 movd 76(%ebx),%mm3 385 psrlq $32, %mm3
386 punpckldq 72(%ebx),%mm3 386 psrlq $32, %mm7
387 pfadd %mm3,%mm1 387 movd %mm3, 88(%edx)
388 pfsub %mm3,%mm2 388 movd %mm7, 80(%edx)
389 pfmul %mm0,%mm2 389
390 movq %mm1,64(%esi) 390 movq 96(%ecx), %mm0
391 movd %mm2,76(%esi) 391 movq 104(%ecx), %mm4
392 psrlq $32,%mm2 392 movq %mm0, %mm3
393 movd %mm2,72(%esi) 393 movq %mm4, %mm7
394 movq 80(%ebx),%mm4 394 movq 120(%ecx), %mm1
395 / 20 395 movq 112(%ecx), %mm5
396 movq %mm4,%mm5 396 /* n.b.: pswapd*/
397 movd 92(%ebx),%mm6 397 movq %mm1, %mm2
398 punpckldq 88(%ebx),%mm6 398 movq %mm5, %mm6
399 pfadd %mm6,%mm4 399 psrlq $32, %mm1
400 pfsubr %mm6,%mm5 400 psrlq $32, %mm5
401 pfmul %mm0,%mm5 401 punpckldq %mm2, %mm1
402 movq %mm4,80(%esi) 402 punpckldq %mm6, %mm5
403 movd %mm5,92(%esi) 403 /**/
404 psrlq $32,%mm5 404 pfadd %mm1, %mm0
405 movd %mm5,88(%esi) 405 pfadd %mm5, %mm4
406 movq 96(%ebx),%mm1 406 movq %mm0, 96(%edx)
407 / 24 407 movq %mm4, 104(%edx)
408 movq %mm1,%mm2 408 pfsubr %mm1, %mm3
409 movd 108(%ebx),%mm3 409 pfsubr %mm5, %mm7
410 punpckldq 104(%ebx),%mm3 410 pfmul 96(%ebx), %mm3
411 pfadd %mm3,%mm1 411 pfmul 104(%ebx), %mm7
412 pfsub %mm3,%mm2 412 movd %mm3, 124(%edx)
413 pfmul %mm0,%mm2 413 movd %mm7, 116(%edx)
414 movq %mm1,96(%esi) 414 psrlq $32, %mm3
415 movd %mm2,108(%esi) 415 psrlq $32, %mm7
416 psrlq $32,%mm2 416 movd %mm3, 120(%edx)
417 movd %mm2,104(%esi) 417 movd %mm7, 112(%edx)
418 movq 112(%ebx),%mm4 418
419 / 28 419 /* Phase 5 */
420 movq %mm4,%mm5 420
421 movd 124(%ebx),%mm6 421 movq (%edx), %mm0
422 punpckldq 120(%ebx),%mm6 422 movq 16(%edx), %mm4
423 pfadd %mm6,%mm4 423 movq %mm0, %mm3
424 pfsubr %mm6,%mm5 424 movq %mm4, %mm7
425 pfmul %mm0,%mm5 425 movq 8(%edx), %mm1
426 movq %mm4,112(%esi) 426 movq 24(%edx), %mm5
427 movd %mm5,124(%esi) 427 /* n.b.: pswapd*/
428 psrlq $32,%mm5 428 movq %mm1, %mm2
429 movd %mm5,120(%esi) 429 movq %mm5, %mm6
430 430 psrlq $32, %mm1
431 // 5 431 psrlq $32, %mm5
432 movl $-1,%eax 432 punpckldq %mm2, %mm1
433 movd %eax,%mm1 433 punpckldq %mm6, %mm5
434 movl $1,%eax 434 /**/
435 movd %eax,%mm0 435 pfadd %mm1, %mm0
436 / L | H 436 pfadd %mm5, %mm4
437 punpckldq %mm1,%mm0 437 movq %mm0, (%ecx)
438 pi2fd %mm0,%mm0 438 movq %mm4, 16(%ecx)
439 / 1.0 | -1.0 439 pfsub %mm1, %mm3
440 movd %eax,%mm1 440 pfsubr %mm5, %mm7
441 pi2fd %mm1,%mm1 441 pfmul 112(%ebx), %mm3
442 movl pnts+16,%eax 442 pfmul 112(%ebx), %mm7
443 movd 0(%eax),%mm2 443 movd %mm3, 12(%ecx)
444 punpckldq %mm2,%mm1 444 movd %mm7, 28(%ecx)
445 / 1.0 | cos0 445 psrlq $32, %mm3
446 movq 0(%esi),%mm2 446 psrlq $32, %mm7
447 / 0 447 movd %mm3, 8(%ecx)
448 movq %mm2,%mm3 448 movd %mm7, 24(%ecx)
449 pfmul %mm0,%mm3 449
450 pfacc %mm3,%mm2 450 movq 32(%edx), %mm0
451 pfmul %mm1,%mm2 451 movq 48(%edx), %mm4
452 movq %mm2,0(%ebx) 452 movq %mm0, %mm3
453 movq 8(%esi),%mm4 453 movq %mm4, %mm7
454 movq %mm4,%mm5 454 movq 40(%edx), %mm1
455 pfmul %mm0,%mm5 455 movq 56(%edx), %mm5
456 pfacc %mm5,%mm4 456 /* n.b.: pswapd*/
457 pfmul %mm0,%mm4 457 movq %mm1, %mm2
458 pfmul %mm1,%mm4 458 movq %mm5, %mm6
459 movq %mm4,%mm5 459 psrlq $32, %mm1
460 psrlq $32,%mm5 460 psrlq $32, %mm5
461 pfacc %mm5,%mm4 461 punpckldq %mm2, %mm1
462 movq %mm4,8(%ebx) 462 punpckldq %mm6, %mm5
463 movq 16(%esi),%mm2 463 /**/
464 / 4 464 pfadd %mm1, %mm0
465 movq %mm2,%mm3 465 pfadd %mm5, %mm4
466 pfmul %mm0,%mm3 466 movq %mm0, 32(%ecx)
467 pfacc %mm3,%mm2 467 movq %mm4, 48(%ecx)
468 pfmul %mm1,%mm2 468 pfsub %mm1, %mm3
469 movq 24(%esi),%mm4 469 pfsubr %mm5, %mm7
470 movq %mm4,%mm5 470 pfmul 112(%ebx), %mm3
471 pfmul %mm0,%mm5 471 pfmul 112(%ebx), %mm7
472 pfacc %mm5,%mm4 472 movd %mm3, 44(%ecx)
473 pfmul %mm0,%mm4 473 movd %mm7, 60(%ecx)
474 pfmul %mm1,%mm4 474 psrlq $32, %mm3
475 movq %mm4,%mm5 475 psrlq $32, %mm7
476 psrlq $32,%mm5 476 movd %mm3, 40(%ecx)
477 pfacc %mm5,%mm4 477 movd %mm7, 56(%ecx)
478 movq %mm2,%mm3 478
479 psrlq $32,%mm3 479 movq 64(%edx), %mm0
480 pfadd %mm4,%mm2 480 movq 80(%edx), %mm4
481 pfadd %mm3,%mm4 481 movq %mm0, %mm3
482 movq %mm2,16(%ebx) 482 movq %mm4, %mm7
483 movq %mm4,24(%ebx) 483 movq 72(%edx), %mm1
484 movq 32(%esi),%mm2 484 movq 88(%edx), %mm5
485 / 8 485 /* n.b.: pswapd*/
486 movq %mm2,%mm3 486 movq %mm1, %mm2
487 pfmul %mm0,%mm3 487 movq %mm5, %mm6
488 pfacc %mm3,%mm2 488 psrlq $32, %mm1
489 pfmul %mm1,%mm2 489 psrlq $32, %mm5
490 movq %mm2,32(%ebx) 490 punpckldq %mm2, %mm1
491 movq 40(%esi),%mm4 491 punpckldq %mm6, %mm5
492 movq %mm4,%mm5 492 /**/
493 pfmul %mm0,%mm5 493 pfadd %mm1, %mm0
494 pfacc %mm5,%mm4 494 pfadd %mm5, %mm4
495 pfmul %mm0,%mm4 495 movq %mm0, 64(%ecx)
496 pfmul %mm1,%mm4 496 movq %mm4, 80(%ecx)
497 movq %mm4,%mm5 497 pfsub %mm1, %mm3
498 psrlq $32,%mm5 498 pfsubr %mm5, %mm7
499 pfacc %mm5,%mm4 499 pfmul 112(%ebx), %mm3
500 movq %mm4,40(%ebx) 500 pfmul 112(%ebx), %mm7
501 movq 48(%esi),%mm2 501 movd %mm3, 76(%ecx)
502 / 12 502 movd %mm7, 92(%ecx)
503 movq %mm2,%mm3 503 psrlq $32, %mm3
504 pfmul %mm0,%mm3 504 psrlq $32, %mm7
505 pfacc %mm3,%mm2 505 movd %mm3, 72(%ecx)
506 pfmul %mm1,%mm2 506 movd %mm7, 88(%ecx)
507 movq 56(%esi),%mm4 507
508 movq %mm4,%mm5 508 movq 96(%edx), %mm0
509 pfmul %mm0,%mm5 509 movq 112(%edx), %mm4
510 pfacc %mm5,%mm4 510 movq %mm0, %mm3
511 pfmul %mm0,%mm4 511 movq %mm4, %mm7
512 pfmul %mm1,%mm4 512 movq 104(%edx), %mm1
513 movq %mm4,%mm5 513 movq 120(%edx), %mm5
514 psrlq $32,%mm5 514 /* n.b.: pswapd*/
515 pfacc %mm5,%mm4 515 movq %mm1, %mm2
516 movq %mm2,%mm3 516 movq %mm5, %mm6
517 psrlq $32,%mm3 517 psrlq $32, %mm1
518 pfadd %mm4,%mm2 518 psrlq $32, %mm5
519 pfadd %mm3,%mm4 519 punpckldq %mm2, %mm1
520 movq %mm2,48(%ebx) 520 punpckldq %mm6, %mm5
521 movq %mm4,56(%ebx) 521 /**/
522 movq 64(%esi),%mm2 522 pfadd %mm1, %mm0
523 / 16 523 pfadd %mm5, %mm4
524 movq %mm2,%mm3 524 movq %mm0, 96(%ecx)
525 pfmul %mm0,%mm3 525 movq %mm4, 112(%ecx)
526 pfacc %mm3,%mm2 526 pfsub %mm1, %mm3
527 pfmul %mm1,%mm2 527 pfsubr %mm5, %mm7
528 movq %mm2,64(%ebx) 528 pfmul 112(%ebx), %mm3
529 movq 72(%esi),%mm4 529 pfmul 112(%ebx), %mm7
530 movq %mm4,%mm5 530 movd %mm3, 108(%ecx)
531 pfmul %mm0,%mm5 531 movd %mm7, 124(%ecx)
532 pfacc %mm5,%mm4 532 psrlq $32, %mm3
533 pfmul %mm0,%mm4 533 psrlq $32, %mm7
534 pfmul %mm1,%mm4 534 movd %mm3, 104(%ecx)
535 movq %mm4,%mm5 535 movd %mm7, 120(%ecx)
536 psrlq $32,%mm5 536
537 pfacc %mm5,%mm4 537 /* Phase 6. This is the end of easy road. */
538 movq %mm4,72(%ebx) 538 movl $1, %eax
539 movq 80(%esi),%mm2 539 movd %eax, %mm7
540 / 20 540 pi2fd %mm7, %mm7
541 movq %mm2,%mm3 541 movq 32(%ecx), %mm0
542 pfmul %mm0,%mm3 542 punpckldq 120(%ebx), %mm7 /* 1.0 | 120(%ebx) */
543 pfacc %mm3,%mm2 543 movq %mm0, %mm1
544 pfmul %mm1,%mm2 544 movq plus_minus_3dnow, %mm6
545 movq 88(%esi),%mm4 545 /* n.b.: pfpnacc */
546 movq %mm4,%mm5 546 pxor %mm6, %mm1
547 pfmul %mm0,%mm5 547 pfacc %mm1, %mm0
548 pfacc %mm5,%mm4 548 /**/
549 pfmul %mm0,%mm4 549 pfmul %mm7, %mm0
550 pfmul %mm1,%mm4 550 movq %mm0, 32(%edx)
551 movq %mm4,%mm5 551 femms
552 psrlq $32,%mm5 552
553 pfacc %mm5,%mm4 553 flds 44(%ecx)
554 movq %mm2,%mm3 554 fsubs 40(%ecx)
555 psrlq $32,%mm3 555 fmuls 120(%ebx)
556 pfadd %mm4,%mm2 556
557 pfadd %mm3,%mm4 557 fsts 44(%edx)
558 movq %mm2,80(%ebx) 558 fadds 40(%ecx) /* pfacc 40(ecx), 56(%ecx) */
559 movq %mm4,88(%ebx) 559 fadds 44(%ecx)
560 movq 96(%esi),%mm2 560 fstps 40(%edx)
561 / 24 561
562 movq %mm2,%mm3 562 flds 48(%ecx)
563 pfmul %mm0,%mm3 563 fsubs 52(%ecx)
564 pfacc %mm3,%mm2 564 fmuls 120(%ebx)
565 pfmul %mm1,%mm2 565
566 movq %mm2,96(%ebx) 566 flds 60(%ecx)
567 movq 104(%esi),%mm4 567 fsubs 56(%ecx)
568 movq %mm4,%mm5 568 fmuls 120(%ebx)
569 pfmul %mm0,%mm5 569
570 pfacc %mm5,%mm4 570 fld %st(0)
571 pfmul %mm0,%mm4 571 fadds 56(%ecx)
572 pfmul %mm1,%mm4 572 fadds 60(%ecx)
573 movq %mm4,%mm5 573
574 psrlq $32,%mm5 574 fld %st(0)
575 pfacc %mm5,%mm4 575 fadds 48(%ecx)
576 movq %mm4,104(%ebx) 576 fadds 52(%ecx)
577 movq 112(%esi),%mm2 577 fstps 48(%edx)
578 / 28 578 fadd %st(2)
579 movq %mm2,%mm3 579 fstps 56(%edx)
580 pfmul %mm0,%mm3 580 fsts 60(%edx)
581 pfacc %mm3,%mm2 581 faddp %st(1)
582 pfmul %mm1,%mm2 582 fstps 52(%edx)
583 movq 120(%esi),%mm4 583 /*---*/
584 movq %mm4,%mm5 584 flds 64(%ecx)
585 pfmul %mm0,%mm5 585 fadds 68(%ecx)
586 pfacc %mm5,%mm4 586 fstps 64(%edx)
587 pfmul %mm0,%mm4 587
588 pfmul %mm1,%mm4 588 flds 64(%ecx)
589 movq %mm4,%mm5 589 fsubs 68(%ecx)
590 psrlq $32,%mm5 590 fmuls 120(%ebx)
591 pfacc %mm5,%mm4 591 fstps 68(%edx)
592 movq %mm2,%mm3 592
593 psrlq $32,%mm3 593 flds 76(%ecx)
594 pfadd %mm4,%mm2 594 fsubs 72(%ecx)
595 pfadd %mm3,%mm4 595 fmuls 120(%ebx)
596 movq %mm2,112(%ebx) 596 fsts 76(%edx)
597 movq %mm4,120(%ebx) 597 fadds 72(%ecx)
598 598 fadds 76(%ecx)
599 // Phase6 599 fstps 72(%edx)
600 movl 0(%ebx),%eax 600
601 movl %eax,1024(%ebp) 601 flds 92(%ecx)
602 movl 4(%ebx),%eax 602 fsubs 88(%ecx)
603 movl %eax,0(%ebp) 603 fmuls 120(%ebx)
604 movl %eax,0(%edx) 604 fsts 92(%edx)
605 movl 8(%ebx),%eax 605 fadds 92(%ecx)
606 movl %eax,512(%ebp) 606 fadds 88(%ecx)
607 movl 12(%ebx),%eax 607
608 movl %eax,512(%edx) 608 fld %st(0)
609 609 fadds 80(%ecx)
610 movl 16(%ebx),%eax 610 fadds 84(%ecx)
611 movl %eax,768(%ebp) 611 fstps 80(%edx)
612 movl 20(%ebx),%eax 612
613 movl %eax,256(%edx) 613 flds 80(%ecx)
614 614 fsubs 84(%ecx)
615 movl 24(%ebx),%eax 615 fmuls 120(%ebx)
616 movl %eax,256(%ebp) 616 fadd %st(0), %st(1)
617 movl 28(%ebx),%eax 617 fadds 92(%edx)
618 movl %eax,768(%edx) 618 fstps 84(%edx)
619 619 fstps 88(%edx)
620 movq 32(%ebx),%mm0 620
621 movq 48(%ebx),%mm1 621 flds 96(%ecx)
622 pfadd %mm1,%mm0 622 fadds 100(%ecx)
623 movd %mm0,896(%ebp) 623 fstps 96(%edx)
624 psrlq $32,%mm0 624
625 movd %mm0,128(%edx) 625 flds 96(%ecx)
626 movq 40(%ebx),%mm2 626 fsubs 100(%ecx)
627 pfadd %mm2,%mm1 627 fmuls 120(%ebx)
628 movd %mm1,640(%ebp) 628 fstps 100(%edx)
629 psrlq $32,%mm1 629
630 movd %mm1,384(%edx) 630 flds 108(%ecx)
631 631 fsubs 104(%ecx)
632 movq 56(%ebx),%mm3 632 fmuls 120(%ebx)
633 pfadd %mm3,%mm2 633 fsts 108(%edx)
634 movd %mm2,384(%ebp) 634 fadds 104(%ecx)
635 psrlq $32,%mm2 635 fadds 108(%ecx)
636 movd %mm2,640(%edx) 636 fstps 104(%edx)
637 637
638 movd 36(%ebx),%mm4 638 flds 124(%ecx)
639 pfadd %mm4,%mm3 639 fsubs 120(%ecx)
640 movd %mm3,128(%ebp) 640 fmuls 120(%ebx)
641 psrlq $32,%mm3 641 fsts 124(%edx)
642 movd %mm3,896(%edx) 642 fadds 120(%ecx)
643 movq 96(%ebx),%mm0 643 fadds 124(%ecx)
644 movq 64(%ebx),%mm1 644
645 645 fld %st(0)
646 movq 112(%ebx),%mm2 646 fadds 112(%ecx)
647 pfadd %mm2,%mm0 647 fadds 116(%ecx)
648 movq %mm0,%mm3 648 fstps 112(%edx)
649 pfadd %mm1,%mm3 649
650 movd %mm3,960(%ebp) 650 flds 112(%ecx)
651 psrlq $32,%mm3 651 fsubs 116(%ecx)
652 movd %mm3,64(%edx) 652 fmuls 120(%ebx)
653 movq 80(%ebx),%mm1 653 fadd %st(0),%st(1)
654 pfadd %mm1,%mm0 654 fadds 124(%edx)
655 movd %mm0,832(%ebp) 655 fstps 116(%edx)
656 psrlq $32,%mm0 656 fstps 120(%edx)
657 movd %mm0,192(%edx) 657 jnz .L01
658 movq 104(%ebx),%mm3 658
659 pfadd %mm3,%mm2 659 /* Phase 7*/
660 movq %mm2,%mm4 660
661 pfadd %mm1,%mm4 661 flds (%ecx)
662 movd %mm4,704(%ebp) 662 fadds 4(%ecx)
663 psrlq $32,%mm4 663 fstps 1024(%esi)
664 movd %mm4,320(%edx) 664
665 movq 72(%ebx),%mm1 665 flds (%ecx)
666 pfadd %mm1,%mm2 666 fsubs 4(%ecx)
667 movd %mm2,576(%ebp) 667 fmuls 120(%ebx)
668 psrlq $32,%mm2 668 fsts (%esi)
669 movd %mm2,448(%edx) 669 fstps (%edi)
670 670
671 movq 120(%ebx),%mm4 671 flds 12(%ecx)
672 pfadd %mm4,%mm3 672 fsubs 8(%ecx)
673 movq %mm3,%mm5 673 fmuls 120(%ebx)
674 pfadd %mm1,%mm5 674 fsts 512(%edi)
675 movd %mm5,448(%ebp) 675 fadds 12(%ecx)
676 psrlq $32,%mm5 676 fadds 8(%ecx)
677 movd %mm5,576(%edx) 677 fstps 512(%esi)
678 movq 88(%ebx),%mm1 678
679 pfadd %mm1,%mm3 679 flds 16(%ecx)
680 movd %mm3,320(%ebp) 680 fsubs 20(%ecx)
681 psrlq $32,%mm3 681 fmuls 120(%ebx)
682 movd %mm3,704(%edx) 682
683 683 flds 28(%ecx)
684 movd 100(%ebx),%mm5 684 fsubs 24(%ecx)
685 pfadd %mm5,%mm4 685 fmuls 120(%ebx)
686 movq %mm4,%mm6 686 fsts 768(%edi)
687 pfadd %mm1,%mm6 687 fld %st(0)
688 movd %mm6,192(%ebp) 688 fadds 24(%ecx)
689 psrlq $32,%mm6 689 fadds 28(%ecx)
690 movd %mm6,832(%edx) 690 fld %st(0)
691 movd 68(%ebx),%mm1 691 fadds 16(%ecx)
692 pfadd %mm1,%mm4 692 fadds 20(%ecx)
693 movd %mm4,64(%ebp) 693 fstps 768(%esi)
694 psrlq $32,%mm4 694 fadd %st(2)
695 movd %mm4,960(%edx) 695 fstps 256(%esi)
696 696 faddp %st(1)
697 / femms 697 fstps 256(%edi)
698 698
699 popl %ebx 699 /* Phase 8*/
700 popl %esi 700
701 popl %edi 701 flds 32(%edx)
702 popl %ebp 702 fadds 48(%edx)
703 addl $256,%esp 703 fstps 896(%esi)
704 704
705 ret 705 flds 48(%edx)
706 706 fadds 40(%edx)
707 fstps 640(%esi)
708
709 flds 40(%edx)
710 fadds 56(%edx)
711 fstps 384(%esi)
712
713 flds 56(%edx)
714 fadds 36(%edx)
715 fstps 128(%esi)
716
717 flds 36(%edx)
718 fadds 52(%edx)
719 fstps 128(%edi)
720
721 flds 52(%edx)
722 fadds 44(%edx)
723 fstps 384(%edi)
724
725 flds 60(%edx)
726 fsts 896(%edi)
727 fadds 44(%edx)
728 fstps 640(%edi)
729
730 flds 96(%edx)
731 fadds 112(%edx)
732 fld %st(0)
733 fadds 64(%edx)
734 fstps 960(%esi)
735 fadds 80(%edx)
736 fstps 832(%esi)
737
738 flds 112(%edx)
739 fadds 104(%edx)
740 fld %st(0)
741 fadds 80(%edx)
742 fstps 704(%esi)
743 fadds 72(%edx)
744 fstps 576(%esi)
745
746 flds 104(%edx)
747 fadds 120(%edx)
748 fld %st(0)
749 fadds 72(%edx)
750 fstps 448(%esi)
751 fadds 88(%edx)
752 fstps 320(%esi)
753
754 flds 120(%edx)
755 fadds 100(%edx)
756 fld %st(0)
757 fadds 88(%edx)
758 fstps 192(%esi)
759 fadds 68(%edx)
760 fstps 64(%esi)
761
762 flds 100(%edx)
763 fadds 116(%edx)
764 fld %st(0)
765 fadds 68(%edx)
766 fstps 64(%edi)
767 fadds 84(%edx)
768 fstps 192(%edi)
769
770 flds 116(%edx)
771 fadds 108(%edx)
772 fld %st(0)
773 fadds 84(%edx)
774 fstps 320(%edi)
775 fadds 76(%edx)
776 fstps 448(%edi)
777
778 flds 108(%edx)
779 fadds 124(%edx)
780 fld %st(0)
781 fadds 76(%edx)
782 fstps 576(%edi)
783 fadds 92(%edx)
784 fstps 704(%edi)
785
786 flds 124(%edx)
787 fsts 960(%edi)
788 fadds 92(%edx)
789 fstps 832(%edi)
790 jmp .L_bye
791 .L01:
792 /* Phase 9*/
793
794 flds (%ecx)
795 fadds 4(%ecx)
796 fistp 512(%esi)
797
798 flds (%ecx)
799 fsubs 4(%ecx)
800 fmuls 120(%ebx)
801
802 fistp (%esi)
803
804
805 flds 12(%ecx)
806 fsubs 8(%ecx)
807 fmuls 120(%ebx)
808 fist 256(%edi)
809 fadds 12(%ecx)
810 fadds 8(%ecx)
811 fistp 256(%esi)
812
813 flds 16(%ecx)
814 fsubs 20(%ecx)
815 fmuls 120(%ebx)
816
817 flds 28(%ecx)
818 fsubs 24(%ecx)
819 fmuls 120(%ebx)
820 fist 384(%edi)
821 fld %st(0)
822 fadds 24(%ecx)
823 fadds 28(%ecx)
824 fld %st(0)
825 fadds 16(%ecx)
826 fadds 20(%ecx)
827 fistp 384(%esi)
828 fadd %st(2)
829 fistp 128(%esi)
830 faddp %st(1)
831 fistp 128(%edi)
832
833 /* Phase 10*/
834
835 flds 32(%edx)
836 fadds 48(%edx)
837 fistp 448(%esi)
838
839 flds 48(%edx)
840 fadds 40(%edx)
841 fistp 320(%esi)
842
843 flds 40(%edx)
844 fadds 56(%edx)
845 fistp 192(%esi)
846
847 flds 56(%edx)
848 fadds 36(%edx)
849 fistp 64(%esi)
850
851 flds 36(%edx)
852 fadds 52(%edx)
853 fistp 64(%edi)
854
855 flds 52(%edx)
856 fadds 44(%edx)
857 fistp 192(%edi)
858
859 flds 60(%edx)
860 fist 448(%edi)
861 fadds 44(%edx)
862 fistp 320(%edi)
863
864 flds 96(%edx)
865 fadds 112(%edx)
866 fld %st(0)
867 fadds 64(%edx)
868 fistp 480(%esi)
869 fadds 80(%edx)
870 fistp 416(%esi)
871
872 flds 112(%edx)
873 fadds 104(%edx)
874 fld %st(0)
875 fadds 80(%edx)
876 fistp 352(%esi)
877 fadds 72(%edx)
878 fistp 288(%esi)
879
880 flds 104(%edx)
881 fadds 120(%edx)
882 fld %st(0)
883 fadds 72(%edx)
884 fistp 224(%esi)
885 fadds 88(%edx)
886 fistp 160(%esi)
887
888 flds 120(%edx)
889 fadds 100(%edx)
890 fld %st(0)
891 fadds 88(%edx)
892 fistp 96(%esi)
893 fadds 68(%edx)
894 fistp 32(%esi)
895
896 flds 100(%edx)
897 fadds 116(%edx)
898 fld %st(0)
899 fadds 68(%edx)
900 fistp 32(%edi)
901 fadds 84(%edx)
902 fistp 96(%edi)
903
904 flds 116(%edx)
905 fadds 108(%edx)
906 fld %st(0)
907 fadds 84(%edx)
908 fistp 160(%edi)
909 fadds 76(%edx)
910 fistp 224(%edi)
911
912 flds 108(%edx)
913 fadds 124(%edx)
914 fld %st(0)
915 fadds 76(%edx)
916 fistp 288(%edi)
917 fadds 92(%edx)
918 fistp 352(%edi)
919
920 flds 124(%edx)
921 fist 480(%edi)
922 fadds 92(%edx)
923 fistp 416(%edi)
924 movsw
925 .L_bye:
926 addl $256,%esp
927 popl %edi
928 popl %esi
929 popl %ebx
930 ret
931
932