Mercurial > mplayer.hg
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 |