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 | mov r0, lr | 594 | mov r0, lr |
| 595 | pop {r4-r6, pc} | 595 | pop {r4-r6, pc} |
| 596 | .endfunc | 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 | int line_size, int h); | 68 | int line_size, int h); |
| 69 | 69 | ||
| 70 | int ff_pix_norm1_armv6(uint8_t *pix, int line_size); | 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 | void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx) | 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 | c->sse[0] = ff_sse16_armv6; | 117 | c->sse[0] = ff_sse16_armv6; |
| 117 | 118 | ||
| 118 | c->pix_norm1 = ff_pix_norm1_armv6; | 119 | c->pix_norm1 = ff_pix_norm1_armv6; |
| 120 | c->pix_sum = ff_pix_sum_armv6; | ||
| 119 | } | 121 | } |