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