annotate mp3lib/dct36_3dnow.s @ 4218:3931c41f740a

Added new syncengine thanks to a new previously undocumented feature of the em8300, this might fix playback on both slow and fast machines (more testing needed). This also requires users to get the em8300 driver from cvs until the next version is released (will probably happen this weekend) Added lots of comments, should be pretty easy to understand most of the internals now Added lots of brackets to if's for's while's etc, this is not a cosmetical thing but rather due to the fact I got some very odd bugs with else's since I didn't properly use brackets (and it's the K&R standard to have brackets everywhere) Fixed some bugs that would occur when disabling libmp1e Switched to default to the new naming scheme of device nodes, the driver will slowly switch over to this state, if it can't find devices under the new name it will try the old naming scheme I stopped opening devices in non-blocking mode, it would break the new syncengine which tries to burst data to the device (alot of times meaning it will fill the fifo pretty fast which would previously result in jerkyness on fast machines) The device now sets the initial state of the pts and speed (probably not needed, but assumption is the mother of all fuckups =) Keep the control interface open during the entire duration of the libvo device, we might need this to flush video buffers on seeking (currently not implemented, therefore seeking is broken) This is beta stuff to the driver, I will get some users to test it for me and do my best to fix seeking as soon as possible...
author mswitch
date Thu, 17 Jan 2002 10:33:47 +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