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