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