~ubuntu-branches/ubuntu/raring/fftw3/raring-proposed

« back to all changes in this revision

Viewing changes to dft/k7/codelets/t1k7i_8.S

  • Committer: Bazaar Package Importer
  • Author(s): Paul Brossier
  • Date: 2006-05-31 13:44:05 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060531134405-ol9hrbg6bh81sg0c
Tags: 3.1.1-1
* New upstream release (closes: #350327, #338487, #338501)
* Add --enable-portable-binary to use -mtune instead of -march
* Use --with-gcc-arch=G5 / pentium4 on powerpc / i386
* Updated Standards-Version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright (c) 2003 Matteo Frigo
3
 
 * Copyright (c) 2003 Massachusetts Institute of Technology
 
2
 * Copyright (c) 2003, 2006 Matteo Frigo
 
3
 * Copyright (c) 2003, 2006 Massachusetts Institute of Technology
4
4
 *
5
5
 * This program is free software; you can redistribute it and/or modify
6
6
 * it under the terms of the GNU General Public License as published by
19
19
 */
20
20
 
21
21
/* This file was automatically generated --- DO NOT EDIT */
22
 
/* Generated on Sat Jul  5 21:52:18 EDT 2003 */
 
22
/* Generated on Tue Mar  7 10:47:09 EST 2006 */
23
23
 
24
24
#include "config.h"
25
25
 
26
26
 
27
27
 
28
28
/* cheap-mode: VECTGRADE_FULL succeeded. (80 steps) */
29
 
/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft-k7/gen_twiddle -no-randomized-cse -n 8 -sign 1 -name t1k7i_8 */
 
29
/* Generated by: ../../../genfft-k7/gen_twiddle -no-randomized-cse -n 8 -sign 1 -name t1k7i_8 */
30
30
 
31
31
/*
32
32
 * Generator Id's : 
33
 
 * $Id: algsimp.ml,v 1.3 2003/03/15 20:29:42 stevenj Exp $
34
 
 * $Id: fft.ml,v 1.3 2003/03/15 20:29:43 stevenj Exp $
35
 
 * $Id: gen_twiddle.ml,v 1.13 2003/04/18 01:21:45 athena Exp $
 
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_twiddle.ml,v 1.14 2005-12-24 21:08:49 athena Exp $
36
36
 */
37
37
 
38
38
/* The following asm code is Copyright (c) 2000-2001 Stefan Kral */
43
43
.text
44
44
        .balign 64
45
45
t1k7i_8:
46
 
        subl $36, %esp
 
46
        subl $44, %esp
47
47
        femms 
48
 
        movl %ebx, 32(%esp)
49
 
        movl 52(%esp), %edx
50
 
        movl 60(%esp), %ebx
51
 
        movl %esi, 28(%esp)
52
 
        movl %edi, 24(%esp)
53
 
        movl 44(%esp), %ecx
54
 
        movl %ebp, 20(%esp)
55
 
        movl 48(%esp), %eax
56
 
        movl 56(%esp), %esi
 
48
        movl %ebx, 40(%esp)
 
49
        movl 60(%esp), %edx
 
50
        movl 68(%esp), %ebx
 
51
        movl 52(%esp), %ecx
 
52
        movl %esi, 36(%esp)
 
53
        movl 56(%esp), %eax
 
54
        movl %edi, 32(%esp)
 
55
        movl 64(%esp), %esi
 
56
        movl %ebp, 28(%esp)
57
57
        leal (,%edx,4), %edx
58
58
        leal (,%ebx,4), %ebx
59
59
        .p2align 4,,7
60
60
.L0:
61
61
        /* promise simd cell size = 8 */ 
62
 
        leal (%edx,%edx,4), %edi
63
 
        movq (%ecx,%edx), %mm1
64
 
        movq (%eax), %mm0
65
 
        movq 32(%eax), %mm3
66
 
        leal (%edi,%edx,2), %ebp
67
 
        movq (%ecx,%edi), %mm4
68
 
        movq 48(%eax), %mm6
 
62
        movq (%ecx,%edx,4), %mm1
 
63
        movq 24(%eax), %mm0
69
64
        leal (%edx,%edx,2), %edi
70
 
        movq (%ecx,%ebp), %mm7
 
65
        movq 8(%eax), %mm3
 
66
        movq (%ecx,%edx,2), %mm4
 
67
        movq 40(%eax), %mm6
 
68
        leal (%edx,%edx,4), %ebp
 
69
        movq (%ecx,%edi,2), %mm7
71
70
        pswapd %mm1, %mm2
72
 
        leal (%edx,%edx,2), %ebp
73
71
        pfmul %mm0, %mm1
 
72
        pswapd %mm4, %mm5
 
73
        pfmul %mm3, %mm4
74
74
        pfmul %mm0, %mm2
75
 
        pswapd %mm4, %mm5
76
 
        pfmul %mm3, %mm4
77
75
        pswapd %mm7, %mm0
 
76
        pfmul %mm6, %mm7
78
77
        pfmul %mm3, %mm5
 
78
        movq 32(%eax), %mm3
 
79
        pfmul %mm6, %mm0
 
80
        pfpnacc %mm2, %mm1
 
81
        movq (%ecx,%ebp), %mm2
 
82
        pfnacc %mm7, %mm4
 
83
        movq (%eax), %mm7
 
84
        pfacc %mm0, %mm5
 
85
        movq %mm1, 0(%esp)
 
86
        movq (%ecx,%edx), %mm1
 
87
        pswapd %mm2, %mm6
 
88
        movq %mm4, 8(%esp)
 
89
        movq (%ecx,%edi), %mm4
 
90
        pfmul %mm3, %mm2
 
91
        pfmul %mm3, %mm6
79
92
        movq 16(%eax), %mm3
80
 
        pfmul %mm6, %mm7
81
 
        pfmul %mm6, %mm0
82
 
        movq (%ecx,%edi), %mm6
83
 
        pfnacc %mm4, %mm1
84
 
        pfacc %mm5, %mm2
85
 
        pswapd %mm6, %mm4
86
 
        pfmul %mm3, %mm6
87
 
        movq %mm1, %mm5
88
 
        pfmul %mm3, %mm4
89
 
        movq 24(%eax), %mm3
90
 
        pfnacc %mm2, %mm5
91
 
        pfnacc %mm6, %mm7
92
 
        movq (%ecx,%edx,4), %mm6
93
 
        pfacc %mm4, %mm0
94
 
        movq %mm5, 0(%esp)
95
 
        movq 8(%eax), %mm5
96
 
        pswapd %mm6, %mm4
97
 
        pfacc %mm7, %mm1
98
 
        pfmul %mm3, %mm6
99
 
        pfnacc %mm0, %mm7
100
 
        pfmul %mm3, %mm4
101
 
        movq (%ecx,%edx,2), %mm3
102
 
        pfacc %mm2, %mm0
103
 
        movq %mm7, 8(%esp)
104
 
        pfpnacc %mm4, %mm6
105
 
        movq 40(%eax), %mm7
106
 
        movq (%ecx,%edi,2), %mm4
107
 
        pswapd %mm3, %mm2
108
 
        pfmul %mm5, %mm3
109
 
        leal (%edx,%edx,4), %edi
 
93
        leal (%ebp,%edx,2), %edi
 
94
        leal (%edx,%edx,2), %ebp
 
95
        pswapd %mm1, %mm0
 
96
        pfmul %mm7, %mm1
 
97
        pfmul %mm7, %mm0
 
98
        pswapd %mm4, %mm7
 
99
        pfmul %mm3, %mm4
 
100
        pfnacc %mm2, %mm1
 
101
        pfmul %mm3, %mm7
 
102
        movq 48(%eax), %mm2
 
103
        movq (%ecx,%edi), %mm3
 
104
        leal (%ebp,%edx,4), %edi
110
105
        addl $56, %eax
111
 
        pfmul %mm5, %mm2
112
 
        pswapd %mm4, %mm5
113
 
        pfmul %mm7, %mm4
114
 
        pfmul %mm7, %mm5
115
 
        movq %mm0, %mm7
116
 
        pfnacc %mm1, %mm0
 
106
        pfacc %mm6, %mm0
 
107
        pswapd %mm3, %mm6
 
108
        pfmul %mm2, %mm3
 
109
        pfmul %mm2, %mm6
 
110
        movq %mm1, %mm2
 
111
        pfnacc %mm0, %mm1
117
112
        pfnacc %mm4, %mm3
 
113
        movq 8(%esp), %mm4
 
114
        pfacc %mm7, %mm6
 
115
        movq %mm1, 16(%esp)
 
116
        movq %mm4, %mm7
 
117
        pfacc %mm3, %mm2
 
118
        pfnacc %mm6, %mm3
 
119
        pfacc %mm5, %mm7
 
120
        pswapd %mm5, %mm5
 
121
        pfacc %mm0, %mm6
 
122
        movq 0(%esp), %mm0
 
123
        pfnacc %mm4, %mm5
118
124
        movq (%ecx), %mm4
119
125
        /* simd data load/store barrier */ 
120
 
        pfacc %mm7, %mm1
121
 
        pfacc %mm5, %mm2
 
126
        movq %mm6, %mm1
 
127
        pfnacc %mm2, %mm6
 
128
        pfacc %mm1, %mm2
 
129
        movq %mm4, %mm1
 
130
        pfadd %mm0, %mm4
 
131
        pfsub %mm0, %mm1
 
132
        movq %mm4, %mm0
 
133
        pfsub %mm7, %mm4
 
134
        pfadd %mm7, %mm0
122
135
        movq %mm4, %mm7
123
 
        movq %mm3, %mm5
124
 
        pfadd %mm6, %mm4
125
 
        pfacc %mm2, %mm5
126
 
        pswapd %mm2, %mm2
127
 
        pfsub %mm6, %mm7
128
 
        movq %mm4, %mm6
129
 
        pfnacc %mm3, %mm2
 
136
        pfsub %mm6, %mm4
 
137
        pfadd %mm6, %mm7
 
138
        movq %mm0, %mm6
 
139
        pfsub %mm2, %mm0
 
140
        pfadd %mm2, %mm6
 
141
        movq 16(%esp), %mm2
 
142
        movq %mm4, (%ecx,%ebp,2)
 
143
        movq %mm1, %mm4
 
144
        pfadd %mm5, %mm1
 
145
        movq %mm7, (%ecx,%edx,2)
 
146
        pswapd %mm3, %mm7
130
147
        pfsub %mm5, %mm4
131
 
        pfadd %mm5, %mm6
132
 
        movq %mm4, %mm3
133
 
        pfadd %mm0, %mm4
134
 
        movq %mm6, %mm5
135
 
        pfsub %mm1, %mm6
136
 
        pfsub %mm0, %mm3
137
 
        movq %mm7, %mm0
138
 
        pfadd %mm1, %mm5
139
 
        movq 8(%esp), %mm1
140
 
        movq %mm4, (%ecx,%edx,2)
141
 
        movq 0(%esp), %mm4
142
 
        pfsub %mm2, %mm7
143
 
        pfadd %mm2, %mm0
144
 
        movq %mm6, (%ecx,%edx,4)
145
 
        movq %mm3, (%ecx,%ebp,2)
146
 
        leal (%edi,%edx,2), %ebp
147
 
        pswapd %mm1, %mm2
148
 
        movq %mm5, (%ecx)
149
 
        movq %mm7, %mm3
150
 
        pfpnacc %mm4, %mm2
151
 
        movq %mm0, %mm5
152
 
        pfpnacc %mm1, %mm4
153
 
        movq %mm2, %mm6
154
 
        pfnacc %mm4, %mm2
155
 
        pfacc %mm6, %mm4
 
148
        movq %mm0, (%ecx,%edx,4)
 
149
        pfpnacc %mm2, %mm7
 
150
        movq %mm6, (%ecx)
 
151
        pfpnacc %mm3, %mm2
 
152
        movq %mm1, %mm6
 
153
        movq %mm4, %mm0
 
154
        movq %mm7, %mm5
 
155
        pfnacc %mm2, %mm7
 
156
        pfacc %mm5, %mm2
 
157
        pfmul KP707106781KP707106781, %mm7
156
158
        pfmul KP707106781KP707106781, %mm2
157
 
        pfmul KP707106781KP707106781, %mm4
158
 
        pfsub %mm2, %mm3
159
 
        pfsub %mm4, %mm5
160
 
        pfadd %mm2, %mm7
161
 
        pfadd %mm4, %mm0
162
 
        movq %mm3, (%ecx,%ebp)
163
 
        movq %mm5, (%ecx,%edi)
164
 
        leal (%edx,%edx,2), %edi
165
 
        movq %mm0, (%ecx,%edx)
166
 
        movq %mm7, (%ecx,%edi)
 
159
        pfadd %mm7, %mm0
 
160
        pfsub %mm7, %mm4
 
161
        pfadd %mm2, %mm6
 
162
        pfsub %mm2, %mm1
 
163
        movq %mm0, (%ecx,%ebp)
 
164
        leal (%edx,%edx,4), %ebp
 
165
        movq %mm4, (%ecx,%edi)
 
166
        movq %mm6, (%ecx,%edx)
 
167
        movq %mm1, (%ecx,%ebp)
167
168
        addl %ebx, %ecx
168
169
        decl %esi
169
170
        jnz .L0
170
171
        femms 
171
 
        movl 32(%esp), %ebx
172
 
        movl 28(%esp), %esi
173
 
        movl 24(%esp), %edi
174
 
        movl 20(%esp), %ebp
175
 
        addl $36, %esp
 
172
        movl 40(%esp), %ebx
 
173
        movl 36(%esp), %esi
 
174
        movl 32(%esp), %edi
 
175
        movl 28(%esp), %ebp
 
176
        addl $44, %esp
176
177
        ret 
177
178
 
178
179
.section .rodata
191
192
        .long 8
192
193
        .long nam
193
194
        .long twinstr
194
 
        .zero 4
 
195
        .long fftwf_kdft_ct_k7_pgenus
195
196
        .double 33
196
197
        .double 16
197
198
        .double 0
198
199
        .double 0
199
 
        .long fftwf_kdft_ct_k7_pgenus
200
200
        .long 0
201
201
        .long 0
202
202
        .long 0