Home | History | Annotate | Download | only in src_gcc
      1 /*
      2  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
      3  *
      4  */
      5 
      6     .eabi_attribute 24, 1
      7     .eabi_attribute 25, 1
      8 
      9     .arm
     10     .fpu neon
     11     .text
     12 
     13     .global omxVCM4P10_FilterDeblockingChroma_VerEdge_I
     14     .func   omxVCM4P10_FilterDeblockingChroma_VerEdge_I
     15 omxVCM4P10_FilterDeblockingChroma_VerEdge_I:
     16     PUSH     {r4-r12,lr}
     17     VPUSH    {d8-d15}
     18     VLD1.8   {d0[]},[r2]!
     19     SUB      r0,r0,#4
     20     VLD1.8   {d2[]},[r3]!
     21     LDR      r4,[sp,#0x6c]
     22     LDR      r5,[sp,#0x68]
     23     LDR      r8, =0x4040404
     24     LDR      r9, =0x3030303
     25     VMOV.I8  d14,#0
     26     VMOV.I8  d15,#0x1
     27     VMOV.I16 d1,#0x4
     28     MOV      r7,#0x40000000
     29 L0x34:
     30     LDR      r6,[r4],#8
     31     ADD      r10,r0,r1
     32     ADD      lr,r1,r1
     33     VLD1.8   {d7},[r0],lr
     34     VLD1.8   {d8},[r10],lr
     35     VLD1.8   {d5},[r0],lr
     36     VLD1.8   {d10},[r10],lr
     37     VLD1.8   {d6},[r0],lr
     38     VLD1.8   {d9},[r10],lr
     39     VLD1.8   {d4},[r0],lr
     40     VLD1.8   {d11},[r10],lr
     41     VZIP.8   d7,d8
     42     VZIP.8   d5,d10
     43     VZIP.8   d6,d9
     44     VZIP.8   d4,d11
     45     VZIP.16  d7,d5
     46     VZIP.16  d8,d10
     47     VZIP.16  d6,d4
     48     VZIP.16  d9,d11
     49     VTRN.32  d7,d6
     50     VTRN.32  d5,d4
     51     VTRN.32  d10,d11
     52     VTRN.32  d8,d9
     53     CMP      r6,#0
     54     VABD.U8  d19,d6,d4
     55     VABD.U8  d13,d4,d8
     56     BEQ      L0x170
     57     VABD.U8  d12,d5,d4
     58     VABD.U8  d18,d9,d8
     59     VMOV.32  d26[0],r6
     60     VCGT.U8  d16,d0,d13
     61     VMAX.U8  d12,d18,d12
     62     VMOVL.U8 q13,d26
     63     VABD.U8  d17,d10,d8
     64     VCGT.S16 d27,d26,#0
     65     VCGT.U8  d12,d2,d12
     66     VCGT.U8  d19,d2,d19
     67     VAND     d16,d16,d27
     68     TST      r6,r9
     69     VCGT.U8  d17,d2,d17
     70     VAND     d16,d16,d12
     71     VAND     d12,d16,d17
     72     VAND     d17,d16,d19
     73     BLNE     armVCM4P10_DeblockingChromabSLT4_unsafe
     74     TST      r6,r8
     75     SUB      r0,r0,r1,LSL #3
     76     VTST.16  d26,d26,d1
     77     BLNE     armVCM4P10_DeblockingChromabSGE4_unsafe
     78     VBIT     d29,d13,d26
     79     VBIT     d24,d31,d26
     80     ADD      r10,r0,#3
     81     VBIF     d29,d4,d16
     82     ADD      r12,r10,r1
     83     ADD      lr,r1,r1
     84     VBIF     d24,d8,d16
     85     ADDS     r7,r7,r7
     86     VST1.8   {d29[0]},[r10],lr
     87     VST1.8   {d29[1]},[r12],lr
     88     VST1.8   {d29[2]},[r10],lr
     89     VST1.8   {d29[3]},[r12],lr
     90     VST1.8   {d29[4]},[r10],lr
     91     VST1.8   {d29[5]},[r12],lr
     92     VST1.8   {d29[6]},[r10],lr
     93     VST1.8   {d29[7]},[r12],lr
     94     ADD      r12,r0,#4
     95     ADD      r10,r12,r1
     96     VST1.8   {d24[0]},[r12],lr
     97     VST1.8   {d24[1]},[r10],lr
     98     VST1.8   {d24[2]},[r12],lr
     99     VST1.8   {d24[3]},[r10],lr
    100     VST1.8   {d24[4]},[r12],lr
    101     VST1.8   {d24[5]},[r10],lr
    102     VST1.8   {d24[6]},[r12],lr
    103     VST1.8   {d24[7]},[r10],lr
    104     ADD      r0,r0,#4
    105     BNE      L0x34
    106     MOV      r0,#0
    107     VPOP     {d8-d15}
    108     POP      {r4-r12,pc}
    109 L0x170:
    110     VLD1.8   {d0[]},[r2]
    111     ADD      r0,r0,#4
    112     SUB      r0,r0,r1,LSL #3
    113     ADDS     r7,r7,r7
    114     VLD1.8   {d2[]},[r3]
    115     ADD      r5,r5,#4
    116     BNE      L0x34
    117     MOV      r0,#0
    118     VPOP     {d8-d15}
    119     POP      {r4-r12,pc}
    120     .endfunc
    121 
    122     .end
    123 
    124