Subversion Repositories Kolibri OS

Rev

Rev 293 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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