Mercurial > libavcodec.hg
comparison arm/dsputil_armv6.S @ 11115:3fba8a5c6288 libavcodec
ARMv6 optimised sse16
author | mru |
---|---|
date | Tue, 09 Feb 2010 16:13:45 +0000 |
parents | 852772c36cc6 |
children | 0198e3582544 |
comparison
equal
deleted
inserted
replaced
11114:852772c36cc6 | 11115:3fba8a5c6288 |
---|---|
511 usada8 r0, r8, r6, r0 | 511 usada8 r0, r8, r6, r0 |
512 usada8 lr, r9, r7, lr | 512 usada8 lr, r9, r7, lr |
513 add r0, r0, lr | 513 add r0, r0, lr |
514 pop {r4-r9, pc} | 514 pop {r4-r9, pc} |
515 .endfunc | 515 .endfunc |
516 | |
517 function ff_sse16_armv6, export=1 | |
518 ldr r12, [sp] | |
519 push {r4-r9, lr} | |
520 mov r0, #0 | |
521 1: | |
522 ldrd r4, r5, [r1] | |
523 ldr r8, [r2] | |
524 uxtb16 lr, r4 | |
525 uxtb16 r4, r4, ror #8 | |
526 uxtb16 r9, r8 | |
527 uxtb16 r8, r8, ror #8 | |
528 ldr r7, [r2, #4] | |
529 usub16 lr, lr, r9 | |
530 usub16 r4, r4, r8 | |
531 smlad r0, lr, lr, r0 | |
532 uxtb16 r6, r5 | |
533 uxtb16 lr, r5, ror #8 | |
534 uxtb16 r8, r7 | |
535 uxtb16 r9, r7, ror #8 | |
536 smlad r0, r4, r4, r0 | |
537 ldrd r4, r5, [r1, #8] | |
538 usub16 r6, r6, r8 | |
539 usub16 r8, lr, r9 | |
540 ldr r7, [r2, #8] | |
541 smlad r0, r6, r6, r0 | |
542 uxtb16 lr, r4 | |
543 uxtb16 r4, r4, ror #8 | |
544 uxtb16 r9, r7 | |
545 uxtb16 r7, r7, ror #8 | |
546 smlad r0, r8, r8, r0 | |
547 ldr r8, [r2, #12] | |
548 usub16 lr, lr, r9 | |
549 usub16 r4, r4, r7 | |
550 smlad r0, lr, lr, r0 | |
551 uxtb16 r6, r5 | |
552 uxtb16 r5, r5, ror #8 | |
553 uxtb16 r9, r8 | |
554 uxtb16 r8, r8, ror #8 | |
555 smlad r0, r4, r4, r0 | |
556 usub16 r6, r6, r9 | |
557 usub16 r5, r5, r8 | |
558 smlad r0, r6, r6, r0 | |
559 add r1, r1, r3 | |
560 add r2, r2, r3 | |
561 subs r12, r12, #1 | |
562 smlad r0, r5, r5, r0 | |
563 bgt 1b | |
564 | |
565 pop {r4-r9, pc} | |
566 .endfunc |