[svn] / trunk / xvidcore / src / motion / ppc_asm / sad_altivec.s Repository:
ViewVC logotype

Annotation of /trunk/xvidcore/src/motion/ppc_asm/sad_altivec.s

Parent Directory Parent Directory | Revision Log Revision Log


Revision 115 - (view) (download)

1 : canard 89 .file "sad_altivec.c"
2 :     gcc2_compiled.:
3 : canard 115 .section ".rodata"
4 :     .align 4
5 :     .type perms,@object
6 :     .size perms,32
7 :     perms:
8 :     .long 66051
9 :     .long 67438087
10 :     .long 269554195
11 :     .long 336926231
12 :     .long 134810123
13 :     .long 202182159
14 :     .long 404298267
15 :     .long 471670303
16 : canard 89 .section ".text"
17 :     .align 2
18 :     .globl sad16_altivec
19 :     .type sad16_altivec,@function
20 :     sad16_altivec:
21 :     stwu %r1,-48(%r1)
22 :     addi %r9,%r4,16
23 :     lvx %v13,0,%r4
24 :     lvx %v0,0,%r9
25 :     rlwinm %r5,%r5,0,0,27
26 :     lvx %v1,0,%r3
27 :     lvsl %v16,0,%r4
28 :     add %r4,%r4,%r5
29 :     addi %r9,%r4,16
30 :     lvx %v11,0,%r4
31 :     vperm %v19,%v13,%v0,%v16
32 :     lvx %v12,0,%r9
33 :     add %r3,%r3,%r5
34 :     lvx %v0,0,%r3
35 :     add %r4,%r4,%r5
36 :     vminub %v18,%v19,%v1
37 :     addi %r9,%r4,16
38 :     lvx %v9,0,%r4
39 :     vmaxub %v2,%v19,%v1
40 :     lvx %v10,0,%r9
41 :     add %r3,%r3,%r5
42 :     vperm %v19,%v11,%v12,%v16
43 :     lvx %v13,0,%r3
44 :     add %r4,%r4,%r5
45 :     vsububm %v2,%v2,%v18
46 :     addi %r9,%r4,16
47 :     lvx %v11,0,%r4
48 :     vminub %v18,%v19,%v0
49 :     lvx %v12,0,%r9
50 :     add %r3,%r3,%r5
51 : canard 115 vsum4ubs %v17,%v2,%v31
52 : canard 89 lvx %v1,0,%r3
53 :     addi %r9,%r1,16
54 :     vmaxub %v2,%v19,%v0
55 :     stw %r6,16(%r1)
56 :     vperm %v19,%v9,%v10,%v16
57 :     lvx %v0,0,%r9
58 :     add %r3,%r3,%r5
59 :     vsububm %v2,%v2,%v18
60 :     add %r4,%r4,%r5
61 :     vminub %v18,%v19,%v13
62 :     vsum4ubs %v17,%v2,%v17
63 :     vmaxub %v2,%v19,%v13
64 :     vspltw %v7,%v0,0
65 :     vperm %v19,%v11,%v12,%v16
66 :     stvx %v7,0,%r9
67 :     vsububm %v2,%v2,%v18
68 :     vminub %v18,%v19,%v1
69 :     vsum4ubs %v17,%v2,%v17
70 :     vmaxub %v2,%v19,%v1
71 :     vsububm %v2,%v2,%v18
72 :     vsum4ubs %v17,%v2,%v17
73 : canard 115 vsumsws %v0,%v17,%v31
74 : canard 89 vcmpgtsw. %v1,%v7,%v0
75 : canard 115 bc 12,26,.L23
76 : canard 89 addi %r9,%r4,16
77 :     lvx %v1,0,%r4
78 :     lvx %v0,0,%r9
79 :     add %r4,%r4,%r5
80 :     lvx %v13,0,%r3
81 :     addi %r9,%r4,16
82 :     lvx %v12,0,%r4
83 :     add %r3,%r3,%r5
84 :     lvx %v11,0,%r9
85 :     add %r4,%r4,%r5
86 :     vperm %v19,%v1,%v0,%v16
87 :     lvx %v10,0,%r3
88 :     addi %r9,%r4,16
89 :     lvx %v8,0,%r4
90 :     add %r3,%r3,%r5
91 :     vminub %v18,%v19,%v13
92 :     lvx %v9,0,%r9
93 :     add %r4,%r4,%r5
94 :     vmaxub %v2,%v19,%v13
95 :     lvx %v1,0,%r3
96 :     addi %r9,%r4,16
97 :     vperm %v19,%v12,%v11,%v16
98 :     lvx %v13,0,%r9
99 :     add %r3,%r3,%r5
100 :     vsububm %v2,%v2,%v18
101 :     lvx %v12,0,%r4
102 :     vminub %v18,%v19,%v10
103 :     lvx %v0,0,%r3
104 :     add %r4,%r4,%r5
105 :     vsum4ubs %v17,%v2,%v17
106 :     add %r3,%r3,%r5
107 :     vmaxub %v2,%v19,%v10
108 :     vperm %v19,%v8,%v9,%v16
109 :     vsububm %v2,%v2,%v18
110 :     vminub %v18,%v19,%v1
111 :     vsum4ubs %v17,%v2,%v17
112 :     vmaxub %v2,%v19,%v1
113 :     vperm %v19,%v12,%v13,%v16
114 :     vsububm %v2,%v2,%v18
115 :     vminub %v18,%v19,%v0
116 :     vsum4ubs %v17,%v2,%v17
117 :     vmaxub %v2,%v19,%v0
118 :     vsububm %v2,%v2,%v18
119 :     vsum4ubs %v17,%v2,%v17
120 : canard 115 vsumsws %v0,%v17,%v31
121 : canard 89 vcmpgtsw. %v7,%v7,%v0
122 : canard 115 bc 12,26,.L23
123 : canard 89 addi %r9,%r4,16
124 :     lvx %v1,0,%r4
125 :     lvx %v0,0,%r9
126 :     add %r4,%r4,%r5
127 :     lvx %v13,0,%r3
128 :     addi %r9,%r4,16
129 :     lvx %v11,0,%r9
130 :     add %r3,%r3,%r5
131 :     lvx %v12,0,%r4
132 :     vperm %v19,%v1,%v0,%v16
133 :     lvx %v10,0,%r3
134 :     add %r4,%r4,%r5
135 :     addi %r9,%r4,16
136 :     lvx %v9,0,%r4
137 :     vminub %v18,%v19,%v13
138 :     lvx %v1,0,%r9
139 :     add %r3,%r3,%r5
140 :     vmaxub %v2,%v19,%v13
141 :     lvx %v0,0,%r3
142 :     add %r4,%r4,%r5
143 :     vperm %v19,%v12,%v11,%v16
144 :     addi %r9,%r4,16
145 :     vsububm %v2,%v2,%v18
146 :     lvx %v11,0,%r4
147 :     add %r3,%r3,%r5
148 :     vminub %v18,%v19,%v10
149 :     lvx %v12,0,%r9
150 :     add %r4,%r4,%r5
151 :     vsum4ubs %v17,%v2,%v17
152 :     lvx %v8,0,%r3
153 :     addi %r9,%r4,16
154 :     vmaxub %v2,%v19,%v10
155 :     lvx %v3,0,%r4
156 :     add %r3,%r3,%r5
157 :     vperm %v19,%v9,%v1,%v16
158 :     lvx %v4,0,%r9
159 :     add %r4,%r4,%r5
160 :     vsububm %v2,%v2,%v18
161 :     lvx %v10,0,%r3
162 :     addi %r9,%r4,16
163 :     vminub %v18,%v19,%v0
164 :     lvx %v5,0,%r4
165 :     add %r3,%r3,%r5
166 :     vsum4ubs %v17,%v2,%v17
167 :     lvx %v6,0,%r9
168 :     add %r4,%r4,%r5
169 :     vmaxub %v2,%v19,%v0
170 :     lvx %v13,0,%r3
171 :     addi %r9,%r4,16
172 :     vperm %v19,%v11,%v12,%v16
173 :     lvx %v7,0,%r4
174 :     add %r3,%r3,%r5
175 :     vsububm %v2,%v2,%v18
176 :     lvx %v9,0,%r9
177 :     add %r4,%r4,%r5
178 :     vminub %v18,%v19,%v8
179 :     lvx %v1,0,%r3
180 :     addi %r9,%r4,16
181 :     vsum4ubs %v17,%v2,%v17
182 :     lvx %v11,0,%r4
183 :     vmaxub %v2,%v19,%v8
184 :     lvx %v12,0,%r9
185 :     vperm %v19,%v3,%v4,%v16
186 :     lvx %v0,%r3,%r5
187 :     vsububm %v2,%v2,%v18
188 :     vminub %v18,%v19,%v10
189 :     vsum4ubs %v17,%v2,%v17
190 :     vmaxub %v2,%v19,%v10
191 :     vperm %v19,%v5,%v6,%v16
192 :     vsububm %v2,%v2,%v18
193 :     vminub %v18,%v19,%v13
194 :     vsum4ubs %v17,%v2,%v17
195 :     vmaxub %v2,%v19,%v13
196 :     vperm %v19,%v7,%v9,%v16
197 :     vsububm %v2,%v2,%v18
198 :     vminub %v18,%v19,%v1
199 :     vsum4ubs %v17,%v2,%v17
200 :     vmaxub %v2,%v19,%v1
201 :     vperm %v19,%v11,%v12,%v16
202 :     vsububm %v2,%v2,%v18
203 :     vminub %v18,%v19,%v0
204 :     vsum4ubs %v17,%v2,%v17
205 :     vmaxub %v2,%v19,%v0
206 :     vsububm %v2,%v2,%v18
207 :     vsum4ubs %v17,%v2,%v17
208 : canard 115 vsumsws %v0,%v17,%v31
209 :     .L23:
210 : canard 89 vspltw %v0,%v0,3
211 :     addi %r0,%r1,32
212 :     stvewx %v0,0,%r0
213 :     lwz %r3,32(%r1)
214 :     la %r1,48(%r1)
215 :     blr
216 :     .Lfe1:
217 :     .size sad16_altivec,.Lfe1-sad16_altivec
218 :     .align 2
219 :     .globl sad8_altivec
220 :     .type sad8_altivec,@function
221 :     sad8_altivec:
222 :     stwu %r1,-16(%r1)
223 : canard 115 andi. %r0,%r3,8
224 :     vsldoi %v16,%v30,%v30,0
225 :     bc 4,2,.L26
226 :     vsldoi %v16,%v29,%v29,0
227 :     .L26:
228 : canard 89 srwi %r5,%r5,4
229 : canard 115 lvx %v8,0,%r4
230 :     vsldoi %v6,%v29,%v29,0
231 :     slwi %r10,%r5,4
232 :     lvx %v11,0,%r3
233 :     add %r9,%r10,%r4
234 :     lvx %v10,%r10,%r4
235 :     addi %r11,%r4,16
236 :     lvx %v0,%r10,%r3
237 : canard 89 addi %r9,%r9,16
238 : canard 115 lvx %v12,0,%r11
239 :     lvx %v13,0,%r9
240 : canard 89 lvsl %v1,0,%r4
241 : canard 115 slwi %r0,%r5,5
242 :     add %r4,%r4,%r0
243 :     vperm %v18,%v11,%v0,%v16
244 :     add %r9,%r10,%r4
245 :     vperm %v3,%v8,%v12,%v1
246 : canard 89 lvx %v9,0,%r4
247 : canard 115 vperm %v17,%v10,%v13,%v1
248 : canard 89 addi %r11,%r4,16
249 : canard 115 lvx %v12,%r10,%r4
250 : canard 89 addi %r9,%r9,16
251 :     lvx %v13,0,%r11
252 :     lvx %v0,0,%r9
253 : canard 115 vperm %v3,%v3,%v17,%v6
254 :     add %r3,%r3,%r0
255 :     add %r4,%r4,%r0
256 : canard 89 lvx %v10,0,%r3
257 : canard 115 lvx %v11,%r10,%r3
258 :     vminub %v19,%v18,%v3
259 :     add %r9,%r10,%r4
260 :     vmaxub %v2,%v18,%v3
261 : canard 89 addi %r11,%r4,16
262 : canard 115 vperm %v17,%v12,%v0,%v1
263 : canard 89 addi %r9,%r9,16
264 : canard 115 lvx %v4,0,%r11
265 :     vperm %v3,%v9,%v13,%v1
266 :     vsububm %v2,%v2,%v19
267 :     lvx %v5,0,%r9
268 : canard 89 lvx %v9,0,%r4
269 : canard 115 vperm %v18,%v10,%v11,%v16
270 :     add %r3,%r3,%r0
271 :     lvx %v13,%r10,%r4
272 :     vperm %v3,%v3,%v17,%v6
273 :     vsum4ubs %v0,%v2,%v31
274 :     add %r4,%r4,%r0
275 :     lvx %v12,%r10,%r3
276 :     lvx %v8,0,%r3
277 :     vminub %v19,%v18,%v3
278 :     add %r9,%r10,%r4
279 :     vmaxub %v2,%v18,%v3
280 : canard 89 addi %r9,%r9,16
281 : canard 115 lvx %v7,%r10,%r4
282 :     vperm %v17,%v13,%v5,%v1
283 : canard 89 addi %r11,%r4,16
284 :     lvx %v10,0,%r9
285 : canard 115 vperm %v3,%v9,%v4,%v1
286 :     vsububm %v2,%v2,%v19
287 :     lvx %v11,0,%r4
288 : canard 89 lvx %v9,0,%r11
289 : canard 115 vperm %v18,%v8,%v12,%v16
290 :     add %r3,%r3,%r0
291 :     vperm %v3,%v3,%v17,%v6
292 :     vsum4ubs %v0,%v2,%v0
293 :     lvx %v12,%r10,%r3
294 : canard 89 lvx %v13,0,%r3
295 : canard 115 vperm %v17,%v7,%v10,%v1
296 :     addi %r8,%r1,8
297 :     vminub %v19,%v18,%v3
298 :     vmaxub %v2,%v18,%v3
299 :     vperm %v3,%v11,%v9,%v1
300 :     vsububm %v2,%v2,%v19
301 :     vperm %v18,%v13,%v12,%v16
302 :     vperm %v3,%v3,%v17,%v6
303 :     vsum4ubs %v0,%v2,%v0
304 :     vminub %v19,%v18,%v3
305 :     vmaxub %v2,%v18,%v3
306 :     vsububm %v2,%v2,%v19
307 :     vsum4ubs %v0,%v2,%v0
308 :     vsumsws %v0,%v0,%v31
309 : canard 89 vspltw %v0,%v0,3
310 : canard 115 stvewx %v0,0,%r8
311 : canard 89 lwz %r3,8(%r1)
312 :     la %r1,16(%r1)
313 :     blr
314 :     .Lfe2:
315 :     .size sad8_altivec,.Lfe2-sad8_altivec
316 :     .align 2
317 :     .globl dev16_altivec
318 :     .type dev16_altivec,@function
319 :     dev16_altivec:
320 :     stwu %r1,-16(%r1)
321 :     lvx %v13,0,%r3
322 :     rlwinm %r4,%r4,0,0,27
323 : canard 115 vspltisb %v1,14
324 : canard 89 add %r3,%r3,%r4
325 :     lvx %v12,0,%r3
326 :     addi %r0,%r1,8
327 :     add %r3,%r3,%r4
328 : canard 115 vsum4ubs %v0,%v13,%v31
329 : canard 89 lvx %v11,0,%r3
330 :     add %r3,%r3,%r4
331 :     lvx %v10,0,%r3
332 :     add %r3,%r3,%r4
333 :     lvx %v9,0,%r3
334 :     vsum4ubs %v0,%v12,%v0
335 :     add %r3,%r3,%r4
336 :     lvx %v8,0,%r3
337 :     add %r3,%r3,%r4
338 :     lvx %v7,0,%r3
339 :     add %r3,%r3,%r4
340 :     vsum4ubs %v0,%v11,%v0
341 :     lvx %v6,0,%r3
342 :     add %r3,%r3,%r4
343 :     lvx %v5,0,%r3
344 :     add %r3,%r3,%r4
345 :     lvx %v4,0,%r3
346 :     vsum4ubs %v0,%v10,%v0
347 :     add %r3,%r3,%r4
348 :     lvx %v3,0,%r3
349 :     add %r3,%r3,%r4
350 :     lvx %v2,0,%r3
351 :     add %r3,%r3,%r4
352 :     vsum4ubs %v0,%v9,%v0
353 :     lvx %v19,0,%r3
354 :     add %r3,%r3,%r4
355 :     lvx %v18,0,%r3
356 :     add %r3,%r3,%r4
357 :     lvx %v17,0,%r3
358 :     vsum4ubs %v0,%v8,%v0
359 :     lvx %v16,%r3,%r4
360 :     vsum4ubs %v0,%v7,%v0
361 :     vsum4ubs %v0,%v6,%v0
362 :     vsum4ubs %v0,%v5,%v0
363 :     vsum4ubs %v0,%v4,%v0
364 :     vsum4ubs %v0,%v3,%v0
365 :     vsum4ubs %v0,%v2,%v0
366 :     vsum4ubs %v0,%v19,%v0
367 :     vsum4ubs %v0,%v18,%v0
368 :     vsum4ubs %v0,%v17,%v0
369 :     vsum4ubs %v0,%v16,%v0
370 : canard 115 vsumsws %v0,%v0,%v31
371 : canard 89 vperm %v1,%v0,%v0,%v1
372 : canard 115 vminub %v15,%v13,%v1
373 : canard 89 vmaxub %v13,%v13,%v1
374 : canard 115 vsububm %v13,%v13,%v15
375 :     vminub %v15,%v12,%v1
376 :     vsum4ubs %v0,%v13,%v31
377 : canard 89 vmaxub %v13,%v12,%v1
378 : canard 115 vsububm %v13,%v13,%v15
379 :     vminub %v15,%v11,%v1
380 : canard 89 vsum4ubs %v0,%v13,%v0
381 :     vmaxub %v13,%v11,%v1
382 : canard 115 vsububm %v13,%v13,%v15
383 :     vminub %v15,%v10,%v1
384 : canard 89 vsum4ubs %v0,%v13,%v0
385 :     vmaxub %v13,%v10,%v1
386 : canard 115 vsububm %v13,%v13,%v15
387 :     vminub %v15,%v9,%v1
388 : canard 89 vsum4ubs %v0,%v13,%v0
389 :     vmaxub %v13,%v9,%v1
390 : canard 115 vsububm %v13,%v13,%v15
391 :     vminub %v15,%v8,%v1
392 : canard 89 vsum4ubs %v0,%v13,%v0
393 :     vmaxub %v13,%v8,%v1
394 : canard 115 vsububm %v13,%v13,%v15
395 :     vminub %v15,%v7,%v1
396 : canard 89 vsum4ubs %v0,%v13,%v0
397 :     vmaxub %v13,%v7,%v1
398 : canard 115 vsububm %v13,%v13,%v15
399 :     vminub %v15,%v6,%v1
400 : canard 89 vsum4ubs %v0,%v13,%v0
401 :     vmaxub %v13,%v6,%v1
402 : canard 115 vsububm %v13,%v13,%v15
403 :     vminub %v15,%v5,%v1
404 : canard 89 vsum4ubs %v0,%v13,%v0
405 :     vmaxub %v13,%v5,%v1
406 : canard 115 vsububm %v13,%v13,%v15
407 :     vminub %v15,%v4,%v1
408 : canard 89 vsum4ubs %v0,%v13,%v0
409 :     vmaxub %v13,%v4,%v1
410 : canard 115 vsububm %v13,%v13,%v15
411 :     vminub %v15,%v3,%v1
412 : canard 89 vsum4ubs %v0,%v13,%v0
413 :     vmaxub %v13,%v3,%v1
414 : canard 115 vsububm %v13,%v13,%v15
415 :     vminub %v15,%v2,%v1
416 : canard 89 vsum4ubs %v0,%v13,%v0
417 :     vmaxub %v13,%v2,%v1
418 : canard 115 vsububm %v13,%v13,%v15
419 :     vminub %v15,%v19,%v1
420 : canard 89 vsum4ubs %v0,%v13,%v0
421 :     vmaxub %v13,%v19,%v1
422 : canard 115 vsububm %v13,%v13,%v15
423 :     vminub %v15,%v18,%v1
424 : canard 89 vsum4ubs %v0,%v13,%v0
425 :     vmaxub %v13,%v18,%v1
426 : canard 115 vsububm %v13,%v13,%v15
427 :     vminub %v15,%v17,%v1
428 : canard 89 vsum4ubs %v0,%v13,%v0
429 :     vmaxub %v13,%v17,%v1
430 : canard 115 vsububm %v13,%v13,%v15
431 :     vminub %v15,%v16,%v1
432 : canard 89 vsum4ubs %v0,%v13,%v0
433 :     vmaxub %v13,%v16,%v1
434 : canard 115 vsububm %v13,%v13,%v15
435 : canard 89 vsum4ubs %v0,%v13,%v0
436 : canard 115 vsumsws %v0,%v0,%v31
437 : canard 89 vspltw %v0,%v0,3
438 :     stvewx %v0,0,%r0
439 :     lwz %r3,8(%r1)
440 :     la %r1,16(%r1)
441 :     blr
442 :     .Lfe3:
443 :     .size dev16_altivec,.Lfe3-dev16_altivec
444 : canard 115 .align 2
445 :     .globl sadInit_altivec
446 :     .type sadInit_altivec,@function
447 :     sadInit_altivec:
448 :     lis %r9,perms@ha
449 :     vspltisw %v31,0
450 :     la %r9,perms@l(%r9)
451 :     addi %r11,%r9,16
452 :     lvx %v29,0,%r9
453 :     lvx %v30,0,%r11
454 :     blr
455 :     .Lfe4:
456 :     .size sadInit_altivec,.Lfe4-sadInit_altivec
457 : canard 89 .ident "GCC: (GNU) 2.95.3 20010111 (BLL/AltiVec prerelease/franzo/20010111)"

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4