annotate mp3lib/dct36_3dnow.s @ 7179:a258b9b7669e

dct_algo
author michael
date Fri, 30 Aug 2002 21:30:59 +0000
parents 3b5f5d1c5041
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 / dct36_3dnow.s - 3DNow! optimized dct36()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 / This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 / <squash@mb.kcom.ne.jp>,only two types of changes have been made:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 / - remove PREFETCH instruction for speedup
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 / - change function name for support 3DNow! automatic detect
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 / You can find Kashiyama's original 3dnow! support patch
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 / (for mpg123-0.59o) at
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 / http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 / by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 / <kim@comtec.co.jp> - after 1.Apr.1999
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 /
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 ///
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 /// Replacement of dct36() with AMD's 3DNow! SIMD operations support
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 ///
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 /// Syuuhei Kashiyama <squash@mb.kcom.ne.jp>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 ///
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 /// The author of this program disclaim whole expressed or implied
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 /// warranties with regard to this program, and in no event shall the
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 /// author of this program liable to whatever resulted from the use of
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 /// this program. Use it at your own risk.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 ///
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 .globl dct36_3dnow
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 .type dct36_3dnow,@function
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 dct36_3dnow:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
32 pushl %ebp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 movl %esp,%ebp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 subl $120,%esp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 pushl %esi
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 pushl %ebx
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 movl 8(%ebp),%eax
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 movl 12(%ebp),%esi
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
39 movl 16(%ebp),%ecx
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
40 movl 20(%ebp),%edx
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 movl 24(%ebp),%ebx
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 leal -128(%ebp),%esp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44 femms
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 movq (%eax),%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46 movq 4(%eax),%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 pfadd %mm1,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48 movq %mm0,4(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 psrlq $32,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 movq 12(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 punpckldq %mm2,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
52 pfadd %mm2,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 movq %mm1,12(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 psrlq $32,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 movq 20(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 punpckldq %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 movq %mm2,20(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 psrlq $32,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 movq 28(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 punpckldq %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 movq %mm3,28(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 psrlq $32,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 movq 36(%eax),%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66 punpckldq %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 pfadd %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68 movq %mm4,36(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 movq 44(%eax),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73 movq %mm5,44(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
74 psrlq $32,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75 movq 52(%eax),%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
76 punpckldq %mm7,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 pfadd %mm7,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
78 movq %mm6,52(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79 psrlq $32,%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 movq 60(%eax),%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 punpckldq %mm0,%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
82 pfadd %mm0,%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
83 movq %mm7,60(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
84 psrlq $32,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
85 movd 68(%eax),%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86 pfadd %mm1,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 movd %mm0,68(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88 movd 4(%eax),%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89 movd 12(%eax),%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 punpckldq %mm1,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
91 punpckldq 20(%eax),%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
92 pfadd %mm1,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
93 movd %mm0,12(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
94 psrlq $32,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
95 movd %mm0,20(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 psrlq $32,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97 movd 28(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
98 punpckldq %mm2,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99 punpckldq 36(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100 pfadd %mm2,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 movd %mm1,28(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102 psrlq $32,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 movd %mm1,36(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 psrlq $32,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105 movd 44(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
106 punpckldq %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
107 punpckldq 52(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
108 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109 movd %mm2,44(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110 psrlq $32,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111 movd %mm2,52(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112 psrlq $32,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 movd 60(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
114 punpckldq %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
115 punpckldq 68(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
116 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
117 movd %mm3,60(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
118 psrlq $32,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
119 movd %mm3,68(%eax)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
120
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
121 movq 24(%eax),%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
122 movq 48(%eax),%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
123 movd COS9+12,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
124 punpckldq %mm2,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
125 movd COS9+24,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
126 punpckldq %mm3,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
127 pfmul %mm2,%mm0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
128 pfmul %mm3,%mm1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
129 pushl %eax
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130 movl $1,%eax
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
131 movd %eax,%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
132 pi2fd %mm7,%mm7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
133 popl %eax
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134 movq 8(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
135 movd COS9+4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
136 punpckldq %mm3,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
137 pfmul %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
138 pfadd %mm0,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139 movq 40(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
140 movd COS9+20,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
141 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
142 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
143 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
144 movq 56(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
145 movd COS9+28,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
146 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
147 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
148 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
149 movq (%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
150 movq 16(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
151 movd COS9+8,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
152 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
153 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
154 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
155 movq 32(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
156 movd COS9+16,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
157 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
158 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
159 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
160 pfadd %mm1,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
161 movq 64(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162 movd COS9+32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
163 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166 movq %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
167 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
168 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
169 punpckldq tfcos36+0,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
170 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
171 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
172 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
173 movd 108(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
174 punpckldq 104(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
175 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176 movd %mm5,36(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178 movd %mm5,32(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
180 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
181 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
182 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
183 movd 32(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
184 punpckldq 36(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
185 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 movd 32(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187 punpckldq 36(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
189 movd %mm5,1024(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
190 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
191 movd %mm5,1152(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
192 movq %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
193 pfsub %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
194 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
195 punpckldq tfcos36+32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
196 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
197 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
198 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
199 movd 140(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
200 punpckldq 72(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
201 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
202 movd %mm5,68(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
203 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
204 movd %mm5,0(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
205 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
206 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
207 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
208 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
209 movd 0(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
210 punpckldq 68(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
211 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
212 movd 0(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
213 punpckldq 68(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
214 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215 movd %mm5,0(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
216 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
217 movd %mm5,2176(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
218 movq 8(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
219 movq 40(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
220 pfsub %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
221 movq 56(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
222 pfsub %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
223 movd COS9+12,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224 punpckldq %mm3,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
225 pfmul %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
226 movq 16(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
227 movq 32(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
228 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
229 movq 64(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
230 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
231 movd COS9+24,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
232 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
233 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
234 movq 48(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
235 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
236 movq (%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
237 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
238 movq %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
239 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
240 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
241 punpckldq tfcos36+4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
242 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
243 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
244 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
245 movd 112(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
246 punpckldq 100(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
247 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
248 movd %mm5,40(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
249 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
250 movd %mm5,28(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
251 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
252 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
253 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
254 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
255 movd 28(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
256 punpckldq 40(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
257 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
258 movd 28(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
259 punpckldq 40(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
260 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
261 movd %mm5,896(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
262 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
263 movd %mm5,1280(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
264 movq %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
265 pfsub %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
266 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
267 punpckldq tfcos36+28,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
268 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
269 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
270 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
271 movd 136(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
272 punpckldq 76(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
273 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
274 movd %mm5,64(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
275 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
276 movd %mm5,4(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
277 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
278 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
279 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
280 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
281 movd 4(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
282 punpckldq 64(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
283 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
284 movd 4(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
285 punpckldq 64(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
286 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
287 movd %mm5,128(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
288 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
289 movd %mm5,2048(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
290
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
291 movq 8(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
292 movd COS9+20,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
293 punpckldq %mm3,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
294 pfmul %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
295 pfsub %mm0,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
296 movq 40(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
297 movd COS9+28,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
298 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
299 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
300 pfsub %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
301 movq 56(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
302 movd COS9+4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
303 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
304 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
305 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
306 movq (%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
307 movq 16(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
308 movd COS9+32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
309 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
310 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
311 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
312 movq 32(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
313 movd COS9+8,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
314 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
315 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
316 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
317 pfadd %mm1,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
318 movq 64(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
319 movd COS9+16,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
320 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
321 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
322 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
323 movq %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
324 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
325 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
326 punpckldq tfcos36+8,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
327 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
328 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
329 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
330 movd 116(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
331 punpckldq 96(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
332 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
333 movd %mm5,44(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
334 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
335 movd %mm5,24(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
336 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
337 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
338 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
339 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
340 movd 24(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
341 punpckldq 44(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
342 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
343 movd 24(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
344 punpckldq 44(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
345 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
346 movd %mm5,768(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
347 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
348 movd %mm5,1408(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
349 movq %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
350 pfsub %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
351 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
352 punpckldq tfcos36+24,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
353 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
354 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
355 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
356 movd 132(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
357 punpckldq 80(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
358 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
359 movd %mm5,60(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
360 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
361 movd %mm5,8(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
362 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
363 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
364 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
365 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
366 movd 8(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
367 punpckldq 60(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
368 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
369 movd 8(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
370 punpckldq 60(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
371 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
372 movd %mm5,256(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
373 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
374 movd %mm5,1920(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
375 movq 8(%eax),%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
376 movd COS9+28,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
377 punpckldq %mm3,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
378 pfmul %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
379 pfsub %mm0,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
380 movq 40(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
381 movd COS9+4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
382 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
383 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
384 pfadd %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
385 movq 56(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
386 movd COS9+20,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
387 punpckldq %mm4,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
388 pfmul %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
389 pfsub %mm3,%mm2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
390 movq (%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
391 movq 16(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
392 movd COS9+16,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
393 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
394 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
395 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
396 movq 32(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
397 movd COS9+32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
398 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
399 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
400 pfadd %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
401 pfadd %mm1,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
402 movq 64(%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
403 movd COS9+8,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
404 punpckldq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
405 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
406 pfsub %mm4,%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
407 movq %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
408 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
409 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
410 punpckldq tfcos36+12,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
411 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
412 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
413 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
414 movd 120(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
415 punpckldq 92(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
416 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
417 movd %mm5,48(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
418 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
419 movd %mm5,20(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
420 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
421 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
422 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
423 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
424 movd 20(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
425 punpckldq 48(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
426 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
427 movd 20(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
428 punpckldq 48(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
429 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
430 movd %mm5,640(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
431 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
432 movd %mm5,1536(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
433 movq %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
434 pfsub %mm2,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
435 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
436 punpckldq tfcos36+20,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
437 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
438 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
439 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
440 movd 128(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
441 punpckldq 84(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
442 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
443 movd %mm5,56(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
444 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
445 movd %mm5,12(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
446 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
447 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
448 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
449 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
450 movd 12(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
451 punpckldq 56(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
452 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
453 movd 12(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
454 punpckldq 56(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
455 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
456 movd %mm5,384(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
457 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
458 movd %mm5,1792(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
459
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
460 movq (%eax),%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
461 movq 16(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
462 pfsub %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
463 movq 32(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
464 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
465 movq 48(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
466 pfsub %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
467 movq 64(%eax),%mm3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
468 pfadd %mm3,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
469 movq %mm7,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
470 punpckldq tfcos36+16,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
471 pfmul %mm5,%mm4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
472 movq %mm4,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
473 pfacc %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
474 movd 124(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
475 punpckldq 88(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
476 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
477 movd %mm5,52(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
478 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
479 movd %mm5,16(%ecx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
480 movq %mm4,%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
481 punpckldq %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
482 pfsub %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
483 punpckhdq %mm5,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
484 movd 16(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
485 punpckldq 52(%edx),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
486 pfmul %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
487 movd 16(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
488 punpckldq 52(%esi),%mm6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
489 pfadd %mm6,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
490 movd %mm5,512(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
491 psrlq $32,%mm5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
492 movd %mm5,1664(%ebx)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
493
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
494 femms
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
495 popl %ebx
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
496 popl %esi
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
497 movl %ebp,%esp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
498 popl %ebp
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
499 ret