Mercurial > libavcodec.hg
diff arm/dsputil_armv6.S @ 11117:ad6d17b36a3a libavcodec
ARMv6 optimised pix_sum
author | mru |
---|---|
date | Tue, 09 Feb 2010 16:13:52 +0000 |
parents | 0198e3582544 |
children | cbf3161706f4 |
line wrap: on
line diff
--- a/arm/dsputil_armv6.S Tue Feb 09 16:13:49 2010 +0000 +++ b/arm/dsputil_armv6.S Tue Feb 09 16:13:52 2010 +0000 @@ -594,3 +594,28 @@ mov r0, lr pop {r4-r6, pc} .endfunc + +function ff_pix_sum_armv6, export=1 + push {r4-r7, lr} + mov r12, #16 + mov r2, #0 + mov r3, #0 + mov lr, #0 + ldr r4, [r0] +1: + subs r12, r12, #1 + ldr r5, [r0, #4] + usada8 r2, r4, lr, r2 + ldr r6, [r0, #8] + usada8 r3, r5, lr, r3 + ldr r7, [r0, #12] + usada8 r2, r6, lr, r2 + beq 2f + ldr r4, [r0, r1]! + usada8 r3, r7, lr, r3 + bgt 1b +2: + usada8 r3, r7, lr, r3 + add r0, r2, r3 + pop {r4-r7, pc} +.endfunc