Originally committed as revision 21705 to svn://svn.ffmpeg.org/ffmpeg/trunk
Unified · Split
| @@ -594,3 +594,28 @@ function ff_pix_norm1_armv6, export=1 · 593 unmodified lines | ||
| 594 | 594 | mov r0, lr |
| 595 | 595 | pop {r4-r6, pc} |
| 596 | 596 | .endfunc |
| 597 | + | |
| 598 | +function ff_pix_sum_armv6, export=1 | |
| 599 | + push {r4-r7, lr} | |
| 600 | + mov r12, #16 | |
| 601 | + mov r2, #0 | |
| 602 | + mov r3, #0 | |
| 603 | + mov lr, #0 | |
| 604 | + ldr r4, [r0] | |
| 605 | +1: | |
| 606 | + subs r12, r12, #1 | |
| 607 | + ldr r5, [r0, #4] | |
| 608 | + usada8 r2, r4, lr, r2 | |
| 609 | + ldr r6, [r0, #8] | |
| 610 | + usada8 r3, r5, lr, r3 | |
| 611 | + ldr r7, [r0, #12] | |
| 612 | + usada8 r2, r6, lr, r2 | |
| 613 | + beq 2f | |
| 614 | + ldr r4, [r0, r1]! | |
| 615 | + usada8 r3, r7, lr, r3 | |
| 616 | + bgt 1b | |
| 617 | +2: | |
| 618 | + usada8 r3, r7, lr, r3 | |
| 619 | + add r0, r2, r3 | |
| 620 | + pop {r4-r7, pc} | |
| 621 | +.endfunc | |
| @@ -68,6 +68,7 @@ int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, · 67 unmodified lines | ||
| 68 | 68 | int line_size, int h); |
| 69 | 69 | |
| 70 | 70 | int ff_pix_norm1_armv6(uint8_t *pix, int line_size); |
| 71 | +int ff_pix_sum_armv6(uint8_t *pix, int line_size); | |
| 71 | 72 | |
| 72 | 73 | void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx) |
| 73 | 74 | { |
| @@ -116,4 +117,5 @@ void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx) · 42 unmodified lines | ||
| 116 | 117 | c->sse[0] = ff_sse16_armv6; |
| 117 | 118 | |
| 118 | 119 | c->pix_norm1 = ff_pix_norm1_armv6; |
| 120 | + c->pix_sum = ff_pix_sum_armv6; | |
| 119 | 121 | } |