~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/arm/vp8dsp_neon.S

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2012-01-12 22:23:28 UTC
  • mfrom: (0.4.7 sid)
  • mto: This revision was merged to the branch mainline in revision 76.
  • Revision ID: package-import@ubuntu.com-20120112222328-8jqdyodym3p84ygu
Tags: 2:1.0~rc4.dfsg1+svn34540-1
* New upstream snapshot
* upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 */
23
23
 
24
24
#include "asm.S"
 
25
#include "neon.S"
25
26
 
26
27
function ff_vp8_luma_dc_wht_neon, export=1
27
28
        vld1.16         {q0-q1},  [r1,:128]
454
455
    .endif
455
456
.endm
456
457
 
457
 
.macro transpose8x16matrix
458
 
        vtrn.32         q0,   q4
459
 
        vtrn.32         q1,   q5
460
 
        vtrn.32         q2,   q6
461
 
        vtrn.32         q3,   q7
462
 
 
463
 
        vtrn.16         q0,   q2
464
 
        vtrn.16         q1,   q3
465
 
        vtrn.16         q4,   q6
466
 
        vtrn.16         q5,   q7
467
 
 
468
 
        vtrn.8          q0,   q1
469
 
        vtrn.8          q2,   q3
470
 
        vtrn.8          q4,   q5
471
 
        vtrn.8          q6,   q7
472
 
.endm
473
 
 
474
458
.macro  vp8_v_loop_filter16 name, inner=0, simple=0
475
459
function ff_vp8_v_loop_filter16\name\()_neon, export=1
476
460
        vpush           {q4-q7}
605
589
        vld1.8          {d13},    [r0], r1
606
590
        vld1.8          {d15},    [r0], r1
607
591
 
608
 
        transpose8x16matrix
 
592
        transpose_8x8   q0,  q1,  q2,  q3,  q4,  q5,  q6,  q7
609
593
 
610
594
        vdup.8          q14, r2                 @ flim_E
611
595
    .if !\simple
616
600
 
617
601
        sub             r0,  r0,  r1, lsl #4    @ backup 16 rows
618
602
 
619
 
        transpose8x16matrix
 
603
        transpose_8x8   q0,  q1,  q2,  q3,  q4,  q5,  q6,  q7
620
604
 
621
605
        @ Store pixels:
622
606
        vst1.8          {d0},     [r0],     r1
670
654
        vld1.8          {d14},    [r0], r2
671
655
        vld1.8          {d15},    [r1], r2
672
656
 
673
 
        transpose8x16matrix
 
657
        transpose_8x8   q0,  q1,  q2,  q3,  q4,  q5,  q6,  q7
674
658
 
675
659
        vdup.8          q14, r3                 @ flim_E
676
660
        vdup.8          q15, r12                @ flim_I
681
665
        sub             r0,  r0,  r2, lsl #3    @ backup u 8 rows
682
666
        sub             r1,  r1,  r2, lsl #3    @ backup v 8 rows
683
667
 
684
 
        transpose8x16matrix
 
668
        transpose_8x8   q0,  q1,  q2,  q3,  q4,  q5,  q6,  q7
685
669
 
686
670
        @ Store pixels:
687
671
        vst1.8          {d0},     [r0], r2
746
730
        push            {r4-r6,lr}
747
731
1:
748
732
        subs            r12, r12, #4
749
 
        ldr             r4,       [r2], r3
750
 
        ldr             r5,       [r2], r3
751
 
        ldr             r6,       [r2], r3
752
 
        ldr             lr,       [r2], r3
753
 
        str             r4,       [r0], r1
754
 
        str             r5,       [r0], r1
755
 
        str             r6,       [r0], r1
756
 
        str             lr,       [r0], r1
 
733
        ldr_post        r4,  r2,  r3
 
734
        ldr_post        r5,  r2,  r3
 
735
        ldr_post        r6,  r2,  r3
 
736
        ldr_post        lr,  r2,  r3
 
737
        str_post        r4,  r0,  r1
 
738
        str_post        r5,  r0,  r1
 
739
        str_post        r6,  r0,  r1
 
740
        str_post        lr,  r0,  r1
757
741
        bgt             1b
758
742
        pop             {r4-r6,pc}
759
743
endfunc