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