~diresu/blender/blender-command-port

« back to all changes in this revision

Viewing changes to extern/fftw/dft/k7/codelets/n1k7_32.S

  • Committer: theeth
  • Date: 2008-10-14 16:52:04 UTC
  • Revision ID: vcs-imports@canonical.com-20081014165204-r32w2gm6s0osvdhn
copy back trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2003, 2006 Matteo Frigo
 
3
 * Copyright (c) 2003, 2006 Massachusetts Institute of Technology
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License as published by
 
7
 * the Free Software Foundation; either version 2 of the License, or
 
8
 * (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this program; if not, write to the Free Software
 
17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
18
 *
 
19
 */
 
20
 
 
21
/* This file was automatically generated --- DO NOT EDIT */
 
22
/* Generated on Sat Jul  1 22:41:12 EDT 2006 */
 
23
 
 
24
#include "config.h"
 
25
 
 
26
 
 
27
 
 
28
/* cheap-mode: VECTGRADE_FULL succeeded. (958 steps) */
 
29
/* Generated by: ../../../genfft-k7/gen_notw -no-randomized-cse -n 32 -name n1k7_32 */
 
30
 
 
31
/*
 
32
 * Generator Id's : 
 
33
 * $Id: algsimp.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
 
34
 * $Id: fft.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
 
35
 * $Id: gen_notw.ml,v 1.12 2006-01-05 03:04:27 stevenj Exp $
 
36
 */
 
37
 
 
38
/* The following asm code is Copyright (c) 2000-2001 Stefan Kral */
 
39
.section .rodata
 
40
        .balign 64
 
41
chs_lo: .long 0x80000000, 0x00000000
 
42
KP707106781KP707106781: .float +0.707106781186547524400844362104849039284835938, +0.707106781186547524400844362104849039284835938
 
43
KP923879532KP382683432: .float +0.923879532511286756128183189396788286822416626, +0.382683432365089771728459984030398866761344562
 
44
KP382683432KP923879532: .float +0.382683432365089771728459984030398866761344562, +0.923879532511286756128183189396788286822416626
 
45
chs_hi: .long 0x00000000, 0x80000000
 
46
KP980785280KP195090322: .float +0.980785280403230449126182236134239036973933731, +0.195090322016128267848284868477022240927691618
 
47
KP555570233KP831469612: .float +0.555570233019602224742830813948532874374937191, +0.831469612302545237078788377617905756738560812
 
48
KP195090322KP980785280: .float +0.195090322016128267848284868477022240927691618, +0.980785280403230449126182236134239036973933731
 
49
KP831469612KP555570233: .float +0.831469612302545237078788377617905756738560812, +0.555570233019602224742830813948532874374937191
 
50
.text
 
51
.text
 
52
        .balign 64
 
53
n1k7_32:
 
54
        subl $340, %esp
 
55
        femms 
 
56
        movl 360(%esp), %ecx
 
57
        movl %esi, 332(%esp)
 
58
        movl 364(%esp), %esi
 
59
        movl 344(%esp), %eax
 
60
        movl %ebx, 336(%esp)
 
61
        movl 352(%esp), %ebx
 
62
        movl %edi, 328(%esp)
 
63
        leal (,%ecx,4), %ecx
 
64
        movl %ebp, 324(%esp)
 
65
        leal (,%esi,4), %esi
 
66
        movl %ecx, %edx
 
67
        movl %esi, %edi
 
68
        sall $4, %edx
 
69
        addl %eax, %edx
 
70
        sall $4, %edi
 
71
        addl %ebx, %edi
 
72
        sall $2, 372(%esp)
 
73
        sall $2, 376(%esp)
 
74
        .p2align 4,,7
 
75
.L0:
 
76
        /* promise simd cell size = 8 */ 
 
77
        movq (%eax), %mm1
 
78
        leal (%ecx,%ecx,2), %ebp
 
79
        movq (%edx), %mm0
 
80
        movq (%eax,%ecx,8), %mm4
 
81
        movq (%edx,%ebp,4), %mm7
 
82
        movq (%edx,%ecx,8), %mm3
 
83
        movq (%eax,%ebp,4), %mm6
 
84
        movq %mm1, %mm2
 
85
        pfadd %mm0, %mm1
 
86
        movq %mm4, %mm5
 
87
        pfsub %mm0, %mm2
 
88
        movq %mm7, %mm0
 
89
        pfadd %mm3, %mm4
 
90
        pfsub %mm3, %mm5
 
91
        movq (%edx,%ecx,4), %mm3
 
92
        pfadd %mm6, %mm7
 
93
        pfsub %mm6, %mm0
 
94
        movq (%eax,%ecx,4), %mm6
 
95
        pswapd %mm5, %mm5
 
96
        movq %mm0, 0(%esp)
 
97
        movq %mm6, %mm0
 
98
        pfadd %mm3, %mm6
 
99
        pxor chs_lo, %mm5
 
100
        pfsub %mm3, %mm0
 
101
        movq %mm6, %mm3
 
102
        pfadd %mm7, %mm6
 
103
        pfsub %mm7, %mm3
 
104
        movq %mm1, %mm7
 
105
        pfsub %mm4, %mm1
 
106
        pfadd %mm4, %mm7
 
107
        movq %mm2, %mm4
 
108
        pfsub %mm5, %mm2
 
109
        movq %mm3, 48(%esp)
 
110
        movq 0(%esp), %mm3
 
111
        pfadd %mm5, %mm4
 
112
        movq %mm1, 40(%esp)
 
113
        movq %mm7, %mm5
 
114
        pfadd %mm6, %mm7
 
115
        movq %mm2, 8(%esp)
 
116
        movq (%eax,%ebp,2), %mm2
 
117
        movq %mm3, %mm1
 
118
        pfsub %mm6, %mm5
 
119
        movq (%edx,%ebp,2), %mm6
 
120
        leal (%ecx,%ecx,2), %ebp
 
121
        movq %mm4, 16(%esp)
 
122
        pfpnacc %mm0, %mm1
 
123
        pswapd %mm0, %mm0
 
124
        movq %mm7, 64(%esp)
 
125
        leal (%ecx,%ebp,2), %ebp
 
126
        movq %mm2, %mm4
 
127
        pfpnacc %mm3, %mm0
 
128
        movq %mm5, 56(%esp)
 
129
        movq (%eax,%ebp,2), %mm5
 
130
        movq (%edx,%ebp,2), %mm3
 
131
        pfadd %mm6, %mm2
 
132
        movq %mm1, %mm7
 
133
        pfsub %mm6, %mm4
 
134
        leal (%ecx,%ecx,4), %ebp
 
135
        pfacc %mm0, %mm1
 
136
        pfnacc %mm7, %mm0
 
137
        movq %mm3, %mm6
 
138
        pfadd %mm5, %mm3
 
139
        pxor chs_lo, %mm4
 
140
        pfsub %mm5, %mm6
 
141
        pfmul KP707106781KP707106781, %mm1
 
142
        pfmul KP707106781KP707106781, %mm0
 
143
        movq (%eax,%ebp,2), %mm5
 
144
        movq %mm3, %mm7
 
145
        pfsub %mm2, %mm3
 
146
        movq %mm4, 72(%esp)
 
147
        movq %mm5, %mm4
 
148
        pswapd %mm6, %mm6
 
149
        pfadd %mm2, %mm7
 
150
        movq (%edx,%ebp,2), %mm2
 
151
        leal (%ecx,%ecx,2), %ebp
 
152
        movq %mm1, 24(%esp)
 
153
        movq (%edx,%ecx,2), %mm1
 
154
        leal (%ecx,%ebp,2), %ebp
 
155
        movq %mm0, 32(%esp)
 
156
        movq (%eax,%ecx,2), %mm0
 
157
        pfsub %mm2, %mm4
 
158
        pfadd %mm2, %mm5
 
159
        movq %mm0, %mm2
 
160
        pfadd %mm1, %mm0
 
161
        pxor chs_lo, %mm4
 
162
        pfsub %mm1, %mm2
 
163
        movq %mm0, %mm1
 
164
        pfadd %mm5, %mm0
 
165
        pfsub %mm5, %mm1
 
166
        pswapd %mm2, %mm2
 
167
        movq %mm0, %mm5
 
168
        pfsub %mm7, %mm0
 
169
        pfadd %mm7, %mm5
 
170
        movq %mm2, %mm7
 
171
        pfadd %mm4, %mm2
 
172
        movq %mm0, 80(%esp)
 
173
        movq %mm3, %mm0
 
174
        pfsub %mm4, %mm7
 
175
        pfpnacc %mm1, %mm0
 
176
        movq %mm5, 136(%esp)
 
177
        pswapd %mm1, %mm1
 
178
        movq 72(%esp), %mm5
 
179
        movq %mm2, %mm4
 
180
        pfmul KP923879532KP382683432, %mm2
 
181
        pfpnacc %mm3, %mm1
 
182
        movq %mm6, %mm3
 
183
        pfmul KP382683432KP923879532, %mm4
 
184
        movq %mm0, 88(%esp)
 
185
        movq %mm7, %mm0
 
186
        pfmul KP923879532KP382683432, %mm7
 
187
        pfadd %mm5, %mm6
 
188
        pfsub %mm5, %mm3
 
189
        pfmul KP382683432KP923879532, %mm0
 
190
        movq %mm1, 96(%esp)
 
191
        pswapd %mm6, %mm5
 
192
        pfmul KP923879532KP382683432, %mm6
 
193
        pswapd %mm3, %mm1
 
194
        pfmul KP382683432KP923879532, %mm3
 
195
        pfmul KP923879532KP382683432, %mm5
 
196
        pfmul KP382683432KP923879532, %mm1
 
197
        pfpnacc %mm6, %mm2
 
198
        movq (%edx,%ebp), %mm6
 
199
        pfpnacc %mm3, %mm0
 
200
        movq (%eax,%ebp), %mm3
 
201
        leal (%ecx,%ecx,2), %ebp
 
202
        pfpnacc %mm4, %mm5
 
203
        leal (%ebp,%ebp,4), %ebp
 
204
        pfpnacc %mm7, %mm1
 
205
        movq %mm2, 104(%esp)
 
206
        movq (%eax,%ebp), %mm7
 
207
        movq (%edx,%ebp), %mm2
 
208
        movq %mm3, %mm4
 
209
        movq %mm0, 120(%esp)
 
210
        leal (%ecx,%ecx,8), %ebp
 
211
        pfadd %mm6, %mm3
 
212
        pfsub %mm6, %mm4
 
213
        movq %mm5, 112(%esp)
 
214
        movq (%eax,%ebp), %mm6
 
215
        movq (%edx,%ebp), %mm5
 
216
        leal (%ecx,%ecx,2), %ebp
 
217
        movq %mm2, %mm0
 
218
        pfsub %mm7, %mm2
 
219
        movq %mm1, 128(%esp)
 
220
        leal (%ebp,%ecx,8), %ebp
 
221
        pfadd %mm7, %mm0
 
222
        movq %mm4, 184(%esp)
 
223
        movq (%edx,%ecx), %mm4
 
224
        movq %mm6, %mm1
 
225
        pfadd %mm5, %mm6
 
226
        movq %mm2, 176(%esp)
 
227
        movq (%eax,%ecx), %mm2
 
228
        pfsub %mm5, %mm1
 
229
        movq %mm0, %mm7
 
230
        pfsub %mm3, %mm0
 
231
        movq %mm2, %mm5
 
232
        pfadd %mm3, %mm7
 
233
        pfadd %mm4, %mm2
 
234
        pxor chs_hi, %mm1
 
235
        pfsub %mm4, %mm5
 
236
        movq %mm0, 168(%esp)
 
237
        movq (%edx,%ebp), %mm4
 
238
        movq (%eax,%ebp), %mm0
 
239
        leal (%ecx,%ecx,2), %ebp
 
240
        movq %mm7, 144(%esp)
 
241
        movq %mm2, %mm3
 
242
        pfadd %mm6, %mm2
 
243
        movq %mm4, %mm7
 
244
        pfadd %mm0, %mm4
 
245
        pfsub %mm0, %mm7
 
246
        movq (%eax,%ebp), %mm0
 
247
        pfsub %mm6, %mm3
 
248
        movq %mm2, 152(%esp)
 
249
        movq (%edx,%ebp), %mm6
 
250
        leal (%ecx,%ecx,2), %ebp
 
251
        movq %mm0, %mm2
 
252
        leal (%ecx,%ebp,4), %ebp
 
253
        pfadd %mm6, %mm0
 
254
        movq %mm3, 160(%esp)
 
255
        pfsub %mm6, %mm2
 
256
        movq %mm7, %mm6
 
257
        movq %mm0, %mm3
 
258
        pfadd %mm4, %mm0
 
259
        pfpnacc %mm2, %mm6
 
260
        pswapd %mm2, %mm2
 
261
        pfsub %mm4, %mm3
 
262
        movq (%eax,%ebp), %mm4
 
263
        pfpnacc %mm7, %mm2
 
264
        movq (%edx,%ebp), %mm7
 
265
        leal (%ecx,%ecx,4), %ebp
 
266
        movq %mm0, 192(%esp)
 
267
        movq %mm3, 200(%esp)
 
268
        movq %mm2, 208(%esp)
 
269
        movq (%edx,%ebp), %mm3
 
270
        movq (%eax,%ebp), %mm2
 
271
        movq %mm7, %mm0
 
272
        pfadd %mm4, %mm7
 
273
        /* simd data load/store barrier */ 
 
274
        leal (%esi,%esi,2), %ebp
 
275
        pfsub %mm4, %mm0
 
276
        addl 372(%esp), %eax
 
277
        addl 372(%esp), %edx
 
278
        movq %mm2, %mm4
 
279
        pfadd %mm3, %mm2
 
280
        pfsub %mm3, %mm4
 
281
        movq %mm2, %mm3
 
282
        pfadd %mm7, %mm2
 
283
        pfsubr %mm7, %mm3
 
284
        movq %mm0, %mm7
 
285
        pfpnacc %mm4, %mm7
 
286
        pswapd %mm4, %mm4
 
287
        pfpnacc %mm0, %mm4
 
288
        pswapd %mm5, %mm0
 
289
        pxor chs_hi, %mm3
 
290
        pfadd %mm1, %mm0
 
291
        pswapd %mm1, %mm1
 
292
        pfsub %mm1, %mm5
 
293
        movq %mm7, %mm1
 
294
        pfnacc %mm4, %mm7
 
295
        pfacc %mm4, %mm1
 
296
        movq %mm0, 256(%esp)
 
297
        movq 208(%esp), %mm0
 
298
        movq %mm5, %mm4
 
299
        pfmul KP707106781KP707106781, %mm7
 
300
        pfmul KP707106781KP707106781, %mm1
 
301
        movq %mm7, 248(%esp)
 
302
        movq %mm6, %mm7
 
303
        pfacc %mm0, %mm6
 
304
        pfadd %mm1, %mm4
 
305
        pfnacc %mm7, %mm0
 
306
        movq 184(%esp), %mm7
 
307
        pfsub %mm1, %mm5
 
308
        movq 176(%esp), %mm1
 
309
        pfmul KP707106781KP707106781, %mm6
 
310
        movq %mm4, 232(%esp)
 
311
        movq 160(%esp), %mm4
 
312
        pswapd %mm7, %mm7
 
313
        pfmul KP707106781KP707106781, %mm0
 
314
        movq %mm5, 216(%esp)
 
315
        movq %mm1, %mm5
 
316
        pxor chs_lo, %mm7
 
317
        pswapd %mm4, %mm4
 
318
        movq %mm6, 224(%esp)
 
319
        movq %mm4, %mm6
 
320
        pfsub %mm3, %mm4
 
321
        pfadd %mm7, %mm5
 
322
        movq %mm0, 264(%esp)
 
323
        movq 152(%esp), %mm0
 
324
        pfadd %mm3, %mm6
 
325
        movq 200(%esp), %mm3
 
326
        pfsub %mm7, %mm1
 
327
        movq %mm4, 296(%esp)
 
328
        movq %mm5, 272(%esp)
 
329
        movq 144(%esp), %mm4
 
330
        movq 168(%esp), %mm5
 
331
        movq %mm0, %mm7
 
332
        pswapd %mm3, %mm3
 
333
        movq %mm6, 280(%esp)
 
334
        movq %mm1, 240(%esp)
 
335
        movq 192(%esp), %mm6
 
336
        pfadd %mm2, %mm0
 
337
        pxor chs_hi, %mm3
 
338
        pfsub %mm2, %mm7
 
339
        movq %mm5, %mm1
 
340
        movq %mm0, %mm2
 
341
        pfadd %mm3, %mm1
 
342
        pfsub %mm3, %mm5
 
343
        movq %mm4, %mm3
 
344
        pfsub %mm6, %mm4
 
345
        pfadd %mm6, %mm3
 
346
        movq %mm1, 288(%esp)
 
347
        movq 64(%esp), %mm6
 
348
        movq %mm4, %mm1
 
349
        pfadd %mm3, %mm0
 
350
        pfsub %mm3, %mm2
 
351
        movq 136(%esp), %mm3
 
352
        pfpnacc %mm7, %mm1
 
353
        pswapd %mm7, %mm7
 
354
        pfpnacc %mm4, %mm7
 
355
        movq %mm6, %mm4
 
356
        pfadd %mm3, %mm6
 
357
        pswapd %mm2, %mm2
 
358
        pfsub %mm3, %mm4
 
359
        pxor chs_hi, %mm2
 
360
        movq %mm6, %mm3
 
361
        pfadd %mm0, %mm6
 
362
        pfsub %mm0, %mm3
 
363
        movq %mm4, %mm0
 
364
        pfadd %mm2, %mm4
 
365
        movq %mm6, (%ebx)
 
366
        movq 80(%esp), %mm6
 
367
        pfsub %mm2, %mm0
 
368
        movq %mm1, %mm2
 
369
        pfacc %mm7, %mm1
 
370
        movq %mm3, (%edi)
 
371
        movq 56(%esp), %mm3
 
372
        pfnacc %mm2, %mm7
 
373
        movq %mm4, (%ebx,%esi,8)
 
374
        pswapd %mm6, %mm6
 
375
        pfmul KP707106781KP707106781, %mm1
 
376
        pxor chs_hi, %mm6
 
377
        movq %mm0, (%edi,%esi,8)
 
378
        movq %mm3, %mm4
 
379
        pfmul KP707106781KP707106781, %mm7
 
380
        pfsub %mm6, %mm4
 
381
        pfadd %mm6, %mm3
 
382
        movq %mm5, %mm6
 
383
        pfmul KP923879532KP382683432, %mm5
 
384
        pfmul KP382683432KP923879532, %mm6
 
385
        movq %mm4, %mm0
 
386
        pfsub %mm7, %mm4
 
387
        movq %mm3, %mm2
 
388
        pfadd %mm1, %mm3
 
389
        pfadd %mm7, %mm0
 
390
        movq 96(%esp), %mm7
 
391
        pfsub %mm1, %mm2
 
392
        movq 88(%esp), %mm1
 
393
        movq %mm4, (%edi,%ebp,4)
 
394
        movq 48(%esp), %mm4
 
395
        movq %mm3, (%ebx,%esi,4)
 
396
        movq %mm7, %mm3
 
397
        movq %mm0, (%ebx,%ebp,4)
 
398
        leal (%esi,%esi,2), %ebp
 
399
        movq %mm2, (%edi,%esi,4)
 
400
        pfnacc %mm1, %mm7
 
401
        movq 40(%esp), %mm2
 
402
        pswapd %mm4, %mm4
 
403
        pfacc %mm3, %mm1
 
404
        leal (%esi,%ebp,2), %ebp
 
405
        pxor chs_hi, %mm4
 
406
        pfmul KP707106781KP707106781, %mm7
 
407
        movq %mm2, %mm0
 
408
        pfmul KP707106781KP707106781, %mm1
 
409
        pfsub %mm4, %mm2
 
410
        pfadd %mm4, %mm0
 
411
        movq 296(%esp), %mm4
 
412
        movq %mm2, %mm3
 
413
        pfadd %mm7, %mm2
 
414
        pfsub %mm7, %mm3
 
415
        movq %mm4, %mm7
 
416
        pfmul KP923879532KP382683432, %mm4
 
417
        pfmul KP382683432KP923879532, %mm7
 
418
        pfpnacc %mm4, %mm6
 
419
        pfpnacc %mm5, %mm7
 
420
        movq %mm3, %mm5
 
421
        movq %mm7, %mm4
 
422
        pfnacc %mm6, %mm7
 
423
        pfacc %mm4, %mm6
 
424
        movq %mm2, %mm4
 
425
        pfadd %mm7, %mm3
 
426
        pfsub %mm7, %mm5
 
427
        movq %mm0, %mm7
 
428
        pfadd %mm1, %mm0
 
429
        pfadd %mm6, %mm4
 
430
        pfsub %mm6, %mm2
 
431
        movq 288(%esp), %mm6
 
432
        movq %mm3, (%ebx,%ebp,2)
 
433
        pfsub %mm1, %mm7
 
434
        movq 280(%esp), %mm1
 
435
        movq %mm5, (%edi,%ebp,2)
 
436
        leal (%esi,%esi,2), %ebp
 
437
        movq %mm6, %mm3
 
438
        pfmul KP923879532KP382683432, %mm6
 
439
        movq %mm2, (%edi,%ebp,2)
 
440
        movq %mm1, %mm5
 
441
        pfmul KP382683432KP923879532, %mm1
 
442
        pfmul KP382683432KP923879532, %mm3
 
443
        movq %mm4, (%ebx,%ebp,2)
 
444
        movq %mm0, %mm4
 
445
        leal (%esi,%esi,4), %ebp
 
446
        pfmul KP923879532KP382683432, %mm5
 
447
        pfpnacc %mm1, %mm6
 
448
        movq %mm7, %mm1
 
449
        pfpnacc %mm3, %mm5
 
450
        movq 272(%esp), %mm3
 
451
        movq %mm6, %mm2
 
452
        pfacc %mm5, %mm6
 
453
        pfnacc %mm2, %mm5
 
454
        movq 264(%esp), %mm2
 
455
        pfadd %mm6, %mm0
 
456
        pfsub %mm6, %mm4
 
457
        movq 256(%esp), %mm6
 
458
        pfadd %mm5, %mm7
 
459
        pfsub %mm5, %mm1
 
460
        movq %mm3, %mm5
 
461
        movq %mm0, (%ebx,%esi,2)
 
462
        movq 248(%esp), %mm0
 
463
        pfsub %mm2, %mm3
 
464
        pfadd %mm2, %mm5
 
465
        movq %mm6, %mm2
 
466
        movq %mm4, (%edi,%esi,2)
 
467
        movq %mm7, (%ebx,%ebp,2)
 
468
        movq %mm1, (%edi,%ebp,2)
 
469
        leal (%esi,%esi,2), %ebp
 
470
        pfadd %mm0, %mm2
 
471
        movq %mm3, %mm7
 
472
        pfmul KP980785280KP195090322, %mm3
 
473
        pfsub %mm0, %mm6
 
474
        movq %mm5, %mm1
 
475
        pfmul KP555570233KP831469612, %mm5
 
476
        pfmul KP195090322KP980785280, %mm7
 
477
        leal (%esi,%ebp,2), %ebp
 
478
        pfmul KP831469612KP555570233, %mm1
 
479
        movq %mm2, %mm4
 
480
        pfmul KP555570233KP831469612, %mm2
 
481
        movq %mm6, %mm0
 
482
        pfmul KP980785280KP195090322, %mm6
 
483
        pfmul KP831469612KP555570233, %mm4
 
484
        pfmul KP195090322KP980785280, %mm0
 
485
        pfpnacc %mm2, %mm1
 
486
        movq 16(%esp), %mm2
 
487
        pfpnacc %mm6, %mm7
 
488
        movq 32(%esp), %mm6
 
489
        pfpnacc %mm5, %mm4
 
490
        pfpnacc %mm3, %mm0
 
491
        movq 128(%esp), %mm3
 
492
        movq %mm2, %mm5
 
493
        pfsub %mm6, %mm2
 
494
        movq %mm4, 304(%esp)
 
495
        movq 120(%esp), %mm4
 
496
        pfadd %mm6, %mm5
 
497
        movq %mm3, %mm6
 
498
        pfacc %mm4, %mm3
 
499
        pfnacc %mm6, %mm4
 
500
        movq %mm5, %mm6
 
501
        pfsub %mm3, %mm6
 
502
        pfadd %mm3, %mm5
 
503
        movq %mm2, %mm3
 
504
        pfadd %mm4, %mm2
 
505
        pfsub %mm4, %mm3
 
506
        movq %mm7, %mm4
 
507
        pfacc %mm0, %mm7
 
508
        pfnacc %mm4, %mm0
 
509
        movq %mm2, %mm4
 
510
        pfadd %mm7, %mm4
 
511
        pfsub %mm7, %mm2
 
512
        movq %mm3, %mm7
 
513
        pfsub %mm0, %mm3
 
514
        pfadd %mm0, %mm7
 
515
        movq 304(%esp), %mm0
 
516
        movq %mm4, (%ebx,%ebp)
 
517
        movq %mm1, %mm4
 
518
        movq %mm2, (%edi,%ebp)
 
519
        leal (%esi,%esi,2), %ebp
 
520
        movq %mm5, %mm2
 
521
        pfacc %mm0, %mm1
 
522
        leal (%ebp,%ebp,4), %ebp
 
523
        pfnacc %mm4, %mm0
 
524
        movq %mm6, %mm4
 
525
        movq %mm7, (%ebx,%ebp)
 
526
        movq 232(%esp), %mm7
 
527
        movq %mm3, (%edi,%ebp)
 
528
        leal (%esi,%esi,2), %ebp
 
529
        pfadd %mm1, %mm2
 
530
        pfsub %mm1, %mm5
 
531
        movq 240(%esp), %mm1
 
532
        pfadd %mm0, %mm4
 
533
        pswapd %mm7, %mm3
 
534
        pfsub %mm0, %mm6
 
535
        movq 224(%esp), %mm0
 
536
        pfmul KP980785280KP195090322, %mm7
 
537
        pfmul KP980785280KP195090322, %mm3
 
538
        movq %mm2, (%ebx,%ebp)
 
539
        movq %mm5, (%edi,%ebp)
 
540
        movq %mm1, %mm2
 
541
        leal (%esi,%esi,2), %ebp
 
542
        pfadd %mm0, %mm1
 
543
        leal (%ebp,%esi,8), %ebp
 
544
        pfsub %mm0, %mm2
 
545
        movq %mm4, (%ebx,%ebp)
 
546
        movq 216(%esp), %mm4
 
547
        movq %mm6, (%edi,%ebp)
 
548
        leal (%esi,%esi,4), %ebp
 
549
        movq %mm1, %mm5
 
550
        pfmul KP195090322KP980785280, %mm1
 
551
        movq %mm2, %mm0
 
552
        pfmul KP831469612KP555570233, %mm2
 
553
        pfmul KP980785280KP195090322, %mm5
 
554
        pswapd %mm4, %mm6
 
555
        pfmul KP555570233KP831469612, %mm4
 
556
        pfmul KP555570233KP831469612, %mm0
 
557
        pfmul KP555570233KP831469612, %mm6
 
558
        pfpnacc %mm1, %mm3
 
559
        movq 8(%esp), %mm1
 
560
        pfpnacc %mm7, %mm5
 
561
        movq 24(%esp), %mm7
 
562
        pfpnacc %mm4, %mm0
 
563
        movq %mm3, 312(%esp)
 
564
        movq 112(%esp), %mm4
 
565
        movq %mm1, %mm3
 
566
        pfpnacc %mm2, %mm6
 
567
        movq 104(%esp), %mm2
 
568
        pfsub %mm7, %mm1
 
569
        pfadd %mm7, %mm3
 
570
        movq %mm4, %mm7
 
571
        pfacc %mm2, %mm4
 
572
        pfnacc %mm7, %mm2
 
573
        movq %mm3, %mm7
 
574
        pfsub %mm4, %mm7
 
575
        pfadd %mm4, %mm3
 
576
        movq %mm1, %mm4
 
577
        pfadd %mm2, %mm1
 
578
        pfsub %mm2, %mm4
 
579
        movq %mm0, %mm2
 
580
        pfacc %mm6, %mm0
 
581
        pfnacc %mm2, %mm6
 
582
        movq %mm1, %mm2
 
583
        pfadd %mm0, %mm2
 
584
        pfsub %mm0, %mm1
 
585
        movq %mm4, %mm0
 
586
        pfadd %mm6, %mm4
 
587
        pfsub %mm6, %mm0
 
588
        movq 312(%esp), %mm6
 
589
        movq %mm2, (%ebx,%ebp)
 
590
        movq %mm5, %mm2
 
591
        movq %mm1, (%edi,%ebp)
 
592
        leal (%esi,%esi,2), %ebp
 
593
        movq %mm3, %mm1
 
594
        pfacc %mm6, %mm5
 
595
        leal (%esi,%ebp,4), %ebp
 
596
        pfnacc %mm2, %mm6
 
597
        movq %mm7, %mm2
 
598
        movq %mm4, (%ebx,%ebp)
 
599
        movq %mm0, (%edi,%ebp)
 
600
        leal (%esi,%esi,8), %ebp
 
601
        pfadd %mm5, %mm1
 
602
        pfsub %mm5, %mm3
 
603
        pfadd %mm6, %mm2
 
604
        pfsub %mm6, %mm7
 
605
        movq %mm1, (%ebx,%esi)
 
606
        movq %mm3, (%edi,%esi)
 
607
        movq %mm2, (%ebx,%ebp)
 
608
        addl 376(%esp), %ebx
 
609
        movq %mm7, (%edi,%ebp)
 
610
        addl 376(%esp), %edi
 
611
        decl 368(%esp)
 
612
        jnz .L0
 
613
        femms 
 
614
        movl 336(%esp), %ebx
 
615
        movl 332(%esp), %esi
 
616
        movl 328(%esp), %edi
 
617
        movl 324(%esp), %ebp
 
618
        addl $340, %esp
 
619
        ret 
 
620
 
 
621
.section .rodata
 
622
nam:
 
623
        .string "n1k7_32"
 
624
        .align 4
 
625
desc:
 
626
        .long 32
 
627
        .long nam
 
628
        .double 186
 
629
        .double 42
 
630
        .double 0
 
631
        .double 0
 
632
        .long fftwf_kdft_k7_mgenus
 
633
        .long 0
 
634
        .long 0
 
635
        .long 0
 
636
        .long 0
 
637
 
 
638
.text
 
639
        .align 4
 
640
.globl fftwf_codelet_n1k7_32
 
641
fftwf_codelet_n1k7_32:
 
642
        subl $12,%esp
 
643
        addl $-4,%esp
 
644
        pushl $desc
 
645
        pushl $n1k7_32
 
646
        pushl 28(%esp)
 
647
        call fftwf_kdft_register
 
648
        addl $16,%esp
 
649
        addl $12,%esp
 
650
        ret
 
651