comparison arm/dsputil_armv6.S @ 11111:95b1fd6057d3 libavcodec

ARMv6 optimised pix_abs16_y2
author mru
date Tue, 09 Feb 2010 16:13:31 +0000
parents 45de2da90eaf
children ffe1ea72ea29
comparison
equal deleted inserted replaced
11110:45de2da90eaf 11111:95b1fd6057d3
368 usada8 r0, r5, r9, r0 368 usada8 r0, r5, r9, r0
369 bgt 1b 369 bgt 1b
370 370
371 pop {r4-r11, pc} 371 pop {r4-r11, pc}
372 .endfunc 372 .endfunc
373
374 .macro usad_y2 p0, p1, p2, p3, n0, n1, n2, n3
375 ldr \n0, [r2]
376 eor \n1, \p0, \n0
377 uhadd8 \p0, \p0, \n0
378 and \n1, \n1, lr
379 ldr \n2, [r1]
380 uadd8 \p0, \p0, \n1
381 ldr \n1, [r2, #4]
382 usada8 r0, \p0, \n2, r0
383 pld [r1, r3]
384 eor \n3, \p1, \n1
385 uhadd8 \p1, \p1, \n1
386 and \n3, \n3, lr
387 ldr \p0, [r1, #4]
388 uadd8 \p1, \p1, \n3
389 ldr \n2, [r2, #8]
390 usada8 r0, \p1, \p0, r0
391 pld [r2, r3]
392 eor \p0, \p2, \n2
393 uhadd8 \p2, \p2, \n2
394 and \p0, \p0, lr
395 ldr \p1, [r1, #8]
396 uadd8 \p2, \p2, \p0
397 ldr \n3, [r2, #12]
398 usada8 r0, \p2, \p1, r0
399 eor \p1, \p3, \n3
400 uhadd8 \p3, \p3, \n3
401 and \p1, \p1, lr
402 ldr \p0, [r1, #12]
403 uadd8 \p3, \p3, \p1
404 add r1, r1, r3
405 usada8 r0, \p3, \p0, r0
406 add r2, r2, r3
407 .endm
408
409 function ff_pix_abs16_y2_armv6, export=1
410 pld [r1]
411 pld [r2]
412 ldr r12, [sp]
413 push {r4-r11, lr}
414 mov r0, #0
415 mov lr, #1
416 orr lr, lr, lr, lsl #8
417 orr lr, lr, lr, lsl #16
418 ldr r4, [r2]
419 ldr r5, [r2, #4]
420 ldr r6, [r2, #8]
421 ldr r7, [r2, #12]
422 add r2, r2, r3
423 1:
424 usad_y2 r4, r5, r6, r7, r8, r9, r10, r11
425 subs r12, r12, #2
426 usad_y2 r8, r9, r10, r11, r4, r5, r6, r7
427 bgt 1b
428
429 pop {r4-r11, pc}
430 .endfunc