History

ARMv6 optimised pix_sum

Originally committed as revision 21705 to svn://svn.ffmpeg.org/ffmpeg/trunk

Måns Rullgård committed 16 years ago

Commit 41c2bd01 parent 66ec2432 files · +27 −0Browse files

Unified · Split

2 files
  1. libavcodec/arm/dsputil_armv6.S +25 −0
  2. libavcodec/arm/dsputil_init_armv6.c +2 −0
libavcodec/arm/dsputil_armv6.S+25−0
@@ -594,3 +594,28 @@ function ff_pix_norm1_armv6, export=1 · 593 unmodified lines
594594 mov r0, lr
595595 pop {r4-r6, pc}
596596 .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
libavcodec/arm/dsputil_init_armv6.c+2−0
@@ -68,6 +68,7 @@ int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, · 67 unmodified lines
6868 int line_size, int h);
6969
7070 int ff_pix_norm1_armv6(uint8_t *pix, int line_size);
71+int ff_pix_sum_armv6(uint8_t *pix, int line_size);
7172
7273 void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx)
7374 {
@@ -116,4 +117,5 @@ void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx) · 42 unmodified lines
116117 c->sse[0] = ff_sse16_armv6;
117118
118119 c->pix_norm1 = ff_pix_norm1_armv6;
120+ c->pix_sum = ff_pix_sum_armv6;
119121 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t