Rev 425 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 425 | Rev 431 | ||
---|---|---|---|
- | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 2 | ;; ;; |
|
- | 3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
|
- | 4 | ;; Distributed under terms of the GNU General Public License ;; |
|
- | 5 | ;; ;; |
|
- | 6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
1 | ; params |
7 | |
2 | ; edi= output |
8 | ; params |
3 | ; eax= input stream 1 |
9 | ; edi= output |
4 | ; ebx= input stream 2 |
10 | ; eax= input stream 1 |
5 | 11 | ; ebx= input stream 2 |
|
6 | if used mmx_mix_2 |
12 | |
7 | 13 | if used mmx_mix_2 |
|
8 | align 4 |
14 | |
9 | mmx_mix_2: |
15 | align 4 |
10 | movq mm0, [eax] |
16 | mmx_mix_2: |
11 | movq mm1, [eax+8] |
17 | movq mm0, [eax] |
12 | movq mm2, [eax+16] |
18 | movq mm1, [eax+8] |
13 | movq mm3, [eax+24] |
19 | movq mm2, [eax+16] |
14 | movq mm4, [eax+32] |
20 | movq mm3, [eax+24] |
15 | movq mm5, [eax+40] |
21 | movq mm4, [eax+32] |
16 | movq mm6, [eax+48] |
22 | movq mm5, [eax+40] |
17 | movq mm7, [eax+56] |
23 | movq mm6, [eax+48] |
18 | 24 | movq mm7, [eax+56] |
|
19 | paddsw mm0, [ebx] |
25 | |
20 | movq [edi], mm0 |
26 | paddsw mm0, [ebx] |
21 | paddsw mm1,[ebx+8] |
27 | movq [edi], mm0 |
22 | movq [edi+8], mm1 |
28 | paddsw mm1,[ebx+8] |
23 | paddsw mm2, [ebx+16] |
29 | movq [edi+8], mm1 |
24 | movq [edi+16], mm2 |
30 | paddsw mm2, [ebx+16] |
25 | paddsw mm3, [ebx+24] |
31 | movq [edi+16], mm2 |
26 | movq [edi+24], mm3 |
32 | paddsw mm3, [ebx+24] |
27 | paddsw mm4, [ebx+32] |
33 | movq [edi+24], mm3 |
28 | movq [edi+32], mm4 |
34 | paddsw mm4, [ebx+32] |
29 | paddsw mm5, [ebx+40] |
35 | movq [edi+32], mm4 |
30 | movq [edi+40], mm5 |
36 | paddsw mm5, [ebx+40] |
31 | paddsw mm6, [ebx+48] |
37 | movq [edi+40], mm5 |
32 | movq [edi+48], mm6 |
38 | paddsw mm6, [ebx+48] |
33 | paddsw mm7, [ebx+56] |
39 | movq [edi+48], mm6 |
34 | movq [edi+56], mm7 |
40 | paddsw mm7, [ebx+56] |
35 | 41 | movq [edi+56], mm7 |
|
36 | movq mm0, [eax+64] |
42 | |
37 | movq mm1, [eax+72] |
43 | movq mm0, [eax+64] |
38 | movq mm2, [eax+80] |
44 | movq mm1, [eax+72] |
39 | movq mm3, [eax+88] |
45 | movq mm2, [eax+80] |
40 | movq mm4, [eax+96] |
46 | movq mm3, [eax+88] |
41 | movq mm5, [eax+104] |
47 | movq mm4, [eax+96] |
42 | movq mm6, [eax+112] |
48 | movq mm5, [eax+104] |
43 | movq mm7, [eax+120] |
49 | movq mm6, [eax+112] |
44 | 50 | movq mm7, [eax+120] |
|
45 | paddsw mm0, [ebx+64] |
51 | |
46 | movq [edi+64], mm0 |
52 | paddsw mm0, [ebx+64] |
47 | paddsw mm1, [ebx+72] |
53 | movq [edi+64], mm0 |
48 | movq [edi+72], mm1 |
54 | paddsw mm1, [ebx+72] |
49 | paddsw mm2, [ebx+80] |
55 | movq [edi+72], mm1 |
50 | movq [edi+80], mm2 |
56 | paddsw mm2, [ebx+80] |
51 | paddsw mm3, [ebx+88] |
57 | movq [edi+80], mm2 |
52 | movq [edi+88], mm3 |
58 | paddsw mm3, [ebx+88] |
53 | paddsw mm4, [ebx+96] |
59 | movq [edi+88], mm3 |
54 | movq [edi+96], mm4 |
60 | paddsw mm4, [ebx+96] |
55 | paddsw mm5, [ecx+104] |
61 | movq [edi+96], mm4 |
56 | movq [edx+104], mm5 |
62 | paddsw mm5, [ecx+104] |
57 | paddsw mm6, [ebx+112] |
63 | movq [edx+104], mm5 |
58 | movq [edi+112], mm6 |
64 | paddsw mm6, [ebx+112] |
59 | paddsw mm7, [ebx+120] |
65 | movq [edi+112], mm6 |
60 | movq [edi+120], mm7 |
66 | paddsw mm7, [ebx+120] |
61 | ret |
67 | movq [edi+120], mm7 |
62 | 68 | ret |
|
63 | align 4 |
69 | |
64 | mmx_mix_3: |
70 | align 4 |
65 | movq mm0, [eax] |
71 | mmx_mix_3: |
66 | movq mm1, [eax+8] |
72 | movq mm0, [eax] |
67 | movq mm2, [eax+16] |
73 | movq mm1, [eax+8] |
68 | movq mm3, [eax+24] |
74 | movq mm2, [eax+16] |
69 | movq mm4, [eax+32] |
75 | movq mm3, [eax+24] |
70 | movq mm5, [eax+40] |
76 | movq mm4, [eax+32] |
71 | movq mm6, [eax+48] |
77 | movq mm5, [eax+40] |
72 | movq mm7, [eax+56] |
78 | movq mm6, [eax+48] |
73 | 79 | movq mm7, [eax+56] |
|
74 | paddsw mm0, [ebx] |
80 | |
75 | paddsw mm1, [ebx+8] |
81 | paddsw mm0, [ebx] |
76 | paddsw mm2, [ebx+16] |
82 | paddsw mm1, [ebx+8] |
77 | paddsw mm3, [ebx+24] |
83 | paddsw mm2, [ebx+16] |
78 | paddsw mm4, [ebx+32] |
84 | paddsw mm3, [ebx+24] |
79 | paddsw mm5, [ebx+40] |
85 | paddsw mm4, [ebx+32] |
80 | paddsw mm6, [ebx+48] |
86 | paddsw mm5, [ebx+40] |
81 | paddsw mm7, [ebx+56] |
87 | paddsw mm6, [ebx+48] |
82 | paddsw mm0, [ecx] |
88 | paddsw mm7, [ebx+56] |
83 | movq [edi], mm0 |
89 | paddsw mm0, [ecx] |
84 | paddsw mm1,[ecx+8] |
90 | movq [edi], mm0 |
85 | movq [edi+8], mm1 |
91 | paddsw mm1,[ecx+8] |
86 | paddsw mm2, [ecx+16] |
92 | movq [edi+8], mm1 |
87 | movq [edi+16], mm2 |
93 | paddsw mm2, [ecx+16] |
88 | paddsw mm3, [ecx+24] |
94 | movq [edi+16], mm2 |
89 | movq [edi+24], mm3 |
95 | paddsw mm3, [ecx+24] |
90 | paddsw mm4, [ecx+32] |
96 | movq [edi+24], mm3 |
91 | movq [edi+32], mm4 |
97 | paddsw mm4, [ecx+32] |
92 | paddsw mm5, [ecx+40] |
98 | movq [edi+32], mm4 |
93 | movq [edi+40], mm5 |
99 | paddsw mm5, [ecx+40] |
94 | paddsw mm6, [ecx+48] |
100 | movq [edi+40], mm5 |
95 | movq [edi+48], mm6 |
101 | paddsw mm6, [ecx+48] |
96 | paddsw mm7, [ecx+56] |
102 | movq [edi+48], mm6 |
97 | movq [edi+56], mm7 |
103 | paddsw mm7, [ecx+56] |
98 | 104 | movq [edi+56], mm7 |
|
99 | movq mm0, [eax+64] |
105 | |
100 | movq mm1, [eax+72] |
106 | movq mm0, [eax+64] |
101 | movq mm2, [eax+80] |
107 | movq mm1, [eax+72] |
102 | movq mm3, [eax+88] |
108 | movq mm2, [eax+80] |
103 | movq mm4, [eax+96] |
109 | movq mm3, [eax+88] |
104 | movq mm5, [eax+104] |
110 | movq mm4, [eax+96] |
105 | movq mm6, [eax+112] |
111 | movq mm5, [eax+104] |
106 | movq mm7, [eax+120] |
112 | movq mm6, [eax+112] |
107 | paddsw mm0, [ebx+64] |
113 | movq mm7, [eax+120] |
108 | paddsw mm1, [ebx+72] |
114 | paddsw mm0, [ebx+64] |
109 | paddsw mm2, [ebx+80] |
115 | paddsw mm1, [ebx+72] |
110 | paddsw mm3, [ebx+88] |
116 | paddsw mm2, [ebx+80] |
111 | paddsw mm4, [ebx+96] |
117 | paddsw mm3, [ebx+88] |
112 | paddsw mm5, [ebx+104] |
118 | paddsw mm4, [ebx+96] |
113 | paddsw mm6, [ebx+112] |
119 | paddsw mm5, [ebx+104] |
114 | paddsw mm7, [ebx+120] |
120 | paddsw mm6, [ebx+112] |
115 | paddsw mm0, [ecx+64] |
121 | paddsw mm7, [ebx+120] |
116 | movq [edi+64], mm0 |
122 | paddsw mm0, [ecx+64] |
117 | paddsw mm1, [ecx+72] |
123 | movq [edi+64], mm0 |
118 | movq [edi+72], mm1 |
124 | paddsw mm1, [ecx+72] |
119 | paddsw mm2, [ecx+80] |
125 | movq [edi+72], mm1 |
120 | movq [edi+80], mm2 |
126 | paddsw mm2, [ecx+80] |
121 | paddsw mm3, [ecx+88] |
127 | movq [edi+80], mm2 |
122 | movq [edi+88], mm3 |
128 | paddsw mm3, [ecx+88] |
123 | paddsw mm4, [ecx+96] |
129 | movq [edi+88], mm3 |
124 | movq [edi+96], mm4 |
130 | paddsw mm4, [ecx+96] |
125 | paddsw mm5, [ecx+104] |
131 | movq [edi+96], mm4 |
126 | movq [edi+104], mm5 |
132 | paddsw mm5, [ecx+104] |
127 | paddsw mm6, [ecx+112] |
133 | movq [edi+104], mm5 |
128 | movq [edi+112], mm6 |
134 | paddsw mm6, [ecx+112] |
129 | paddsw mm7, [ecx+120] |
135 | movq [edi+112], mm6 |
130 | movq [edi+120], mm7 |
136 | paddsw mm7, [ecx+120] |
131 | ret |
137 | movq [edi+120], mm7 |
132 | 138 | ret |
|
133 | align 4 |
139 | |
134 | mmx_mix_4: |
140 | align 4 |
135 | 141 | mmx_mix_4: |
|
136 | movq mm0, [eax] |
142 | |
137 | movq mm2, [eax+8] |
143 | movq mm0, [eax] |
138 | movq mm4, [eax+16] |
144 | movq mm2, [eax+8] |
139 | movq mm6, [eax+24] |
145 | movq mm4, [eax+16] |
140 | movq mm1, [ebx] |
146 | movq mm6, [eax+24] |
141 | movq mm3, [ebx+8] |
147 | movq mm1, [ebx] |
142 | movq mm5, [ebx+16] |
148 | movq mm3, [ebx+8] |
143 | movq mm7, [ebx+24] |
149 | movq mm5, [ebx+16] |
144 | paddsw mm0, [ecx] |
150 | movq mm7, [ebx+24] |
145 | paddsw mm2, [ecx+8] |
151 | paddsw mm0, [ecx] |
146 | paddsw mm4, [ecx+16] |
152 | paddsw mm2, [ecx+8] |
147 | paddsw mm6, [ecx+24] |
153 | paddsw mm4, [ecx+16] |
148 | paddsw mm1, [edx] |
154 | paddsw mm6, [ecx+24] |
149 | paddsw mm3, [edx+8] |
155 | paddsw mm1, [edx] |
150 | paddsw mm5, [edx+16] |
156 | paddsw mm3, [edx+8] |
151 | paddsw mm7, [edx+24] |
157 | paddsw mm5, [edx+16] |
152 | 158 | paddsw mm7, [edx+24] |
|
153 | paddsw mm0, mm1 |
159 | |
154 | movq [edi], mm0 |
160 | paddsw mm0, mm1 |
155 | paddsw mm2, mm3 |
161 | movq [edi], mm0 |
156 | movq [edi+8], mm2 |
162 | paddsw mm2, mm3 |
157 | paddsw mm4, mm5 |
163 | movq [edi+8], mm2 |
158 | movq [edi+16], mm4 |
164 | paddsw mm4, mm5 |
159 | paddsw mm5, mm6 |
165 | movq [edi+16], mm4 |
160 | movq [edi+24], mm6 |
166 | paddsw mm5, mm6 |
161 | 167 | movq [edi+24], mm6 |
|
162 | movq mm0, [eax+32] |
168 | |
163 | movq mm2, [eax+40] |
169 | movq mm0, [eax+32] |
164 | movq mm4, [eax+48] |
170 | movq mm2, [eax+40] |
165 | movq mm6, [eax+56] |
171 | movq mm4, [eax+48] |
166 | movq mm1, [ebx+32] |
172 | movq mm6, [eax+56] |
167 | movq mm3, [ebx+40] |
173 | movq mm1, [ebx+32] |
168 | movq mm5, [ebx+48] |
174 | movq mm3, [ebx+40] |
169 | movq mm7, [ebx+56] |
175 | movq mm5, [ebx+48] |
170 | paddsw mm0, [ecx+32] |
176 | movq mm7, [ebx+56] |
171 | paddsw mm2, [ecx+40] |
177 | paddsw mm0, [ecx+32] |
172 | paddsw mm4, [ecx+48] |
178 | paddsw mm2, [ecx+40] |
173 | paddsw mm6, [ecx+56] |
179 | paddsw mm4, [ecx+48] |
174 | paddsw mm1, [edx+32] |
180 | paddsw mm6, [ecx+56] |
175 | paddsw mm3, [edx+40] |
181 | paddsw mm1, [edx+32] |
176 | paddsw mm5, [edx+48] |
182 | paddsw mm3, [edx+40] |
177 | paddsw mm7, [edx+56] |
183 | paddsw mm5, [edx+48] |
178 | 184 | paddsw mm7, [edx+56] |
|
179 | paddsw mm0, mm1 |
185 | |
180 | movq [edi+32], mm0 |
186 | paddsw mm0, mm1 |
181 | paddsw mm2, mm2 |
187 | movq [edi+32], mm0 |
182 | movq [edi+40], mm2 |
188 | paddsw mm2, mm2 |
183 | paddsw mm4, mm5 |
189 | movq [edi+40], mm2 |
184 | movq [edi+48], mm4 |
190 | paddsw mm4, mm5 |
185 | paddsw mm6, mm7 |
191 | movq [edi+48], mm4 |
186 | movq [edi+56], mm6 |
192 | paddsw mm6, mm7 |
187 | 193 | movq [edi+56], mm6 |
|
188 | movq mm0, [eax+64] |
194 | |
189 | movq mm2, [eax+72] |
195 | movq mm0, [eax+64] |
190 | movq mm4, [eax+80] |
196 | movq mm2, [eax+72] |
191 | movq mm6, [eax+88] |
197 | movq mm4, [eax+80] |
192 | movq mm1, [ebx+64] |
198 | movq mm6, [eax+88] |
193 | movq mm3, [ebx+72] |
199 | movq mm1, [ebx+64] |
194 | movq mm5, [ebx+80] |
200 | movq mm3, [ebx+72] |
195 | movq mm7, [ebx+88] |
201 | movq mm5, [ebx+80] |
196 | paddsw mm0, [ecx+64] |
202 | movq mm7, [ebx+88] |
197 | paddsw mm2, [ecx+72] |
203 | paddsw mm0, [ecx+64] |
198 | paddsw mm4, [ecx+80] |
204 | paddsw mm2, [ecx+72] |
199 | paddsw mm6, [ecx+88] |
205 | paddsw mm4, [ecx+80] |
200 | paddsw mm1, [edx+64] |
206 | paddsw mm6, [ecx+88] |
201 | paddsw mm3, [edx+72] |
207 | paddsw mm1, [edx+64] |
202 | paddsw mm5, [edx+80] |
208 | paddsw mm3, [edx+72] |
203 | paddsw mm7, [edx+88] |
209 | paddsw mm5, [edx+80] |
204 | 210 | paddsw mm7, [edx+88] |
|
205 | paddsw mm0, mm1 |
211 | |
206 | movq [edi+64], mm0 |
212 | paddsw mm0, mm1 |
207 | paddsw mm2, mm3 |
213 | movq [edi+64], mm0 |
208 | movq [edi+72], mm2 |
214 | paddsw mm2, mm3 |
209 | paddsw mm4, mm5 |
215 | movq [edi+72], mm2 |
210 | movq [edi+80], mm4 |
216 | paddsw mm4, mm5 |
211 | paddsw mm6, mm5 |
217 | movq [edi+80], mm4 |
212 | movq [edi+88], mm7 |
218 | paddsw mm6, mm5 |
213 | 219 | movq [edi+88], mm7 |
|
214 | movq mm0, [eax+96] |
220 | |
215 | movq mm2, [eax+104] |
221 | movq mm0, [eax+96] |
216 | movq mm4, [eax+112] |
222 | movq mm2, [eax+104] |
217 | movq mm6, [eax+120] |
223 | movq mm4, [eax+112] |
218 | movq mm1, [ebx+96] |
224 | movq mm6, [eax+120] |
219 | movq mm3, [ebx+104] |
225 | movq mm1, [ebx+96] |
220 | movq mm5, [ebx+112] |
226 | movq mm3, [ebx+104] |
221 | movq mm7, [ebx+120] |
227 | movq mm5, [ebx+112] |
222 | paddsw mm0, [ecx+96] |
228 | movq mm7, [ebx+120] |
223 | paddsw mm2, [ecx+104] |
229 | paddsw mm0, [ecx+96] |
224 | paddsw mm4, [ecx+112] |
230 | paddsw mm2, [ecx+104] |
225 | paddsw mm6, [ecx+120] |
231 | paddsw mm4, [ecx+112] |
226 | paddsw mm1, [edx+96] |
232 | paddsw mm6, [ecx+120] |
227 | paddsw mm3, [edx+104] |
233 | paddsw mm1, [edx+96] |
228 | paddsw mm5, [edx+112] |
234 | paddsw mm3, [edx+104] |
229 | paddsw mm7, [edx+120] |
235 | paddsw mm5, [edx+112] |
230 | paddsw mm0, mm1 |
236 | paddsw mm7, [edx+120] |
231 | movq [eax+96], mm0 |
237 | paddsw mm0, mm1 |
232 | paddsw mm2, mm3 |
238 | movq [eax+96], mm0 |
233 | movq [edi+104], mm2 |
239 | paddsw mm2, mm3 |
234 | paddsw mm4, mm5 |
240 | movq [edi+104], mm2 |
235 | movq [edi+112], mm4 |
241 | paddsw mm4, mm5 |
236 | paddsw mm6, mm7 |
242 | movq [edi+112], mm4 |
237 | movq [edi+120], mm6 |
243 | paddsw mm6, mm7 |
238 | ret |
244 | movq [edi+120], mm6 |
239 | 245 | ret |
|
240 | end if |
246 | |
- | 247 | end if |