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_HorEdge_I
     14     .func   omxVCM4P10_FilterDeblockingChroma_HorEdge_I
     15 omxVCM4P10_FilterDeblockingChroma_HorEdge_I:
     16     PUSH     {r4-r10,lr}
     17     VPUSH    {d8-d15}
     18     VLD1.8   {d0[]},[r2]!
     19     SUB      r0,r0,r1,LSL #1
     20     SUB      r0,r0,r1
     21     VLD1.8   {d2[]},[r3]!
     22     LDR      r4,[sp,#0x64]
     23     LDR      r5,[sp,#0x60]
     24     LDR      r9, =0x3030303
     25     LDR      r8, =0x4040404
     26     VMOV.I8  d14,#0
     27     VMOV.I8  d15,#0x1
     28     VMOV.I16 d1,#0x4
     29     MOV      r7,#0x40000000
     30 L0x38:
     31     LDR      r6,[r4],#8
     32     VLD1.8   {d6},[r0],r1
     33     VLD1.8   {d5},[r0],r1
     34     CMP      r6,#0
     35     VLD1.8   {d4},[r0],r1
     36     VLD1.8   {d8},[r0],r1
     37     VABD.U8  d19,d6,d4
     38     VLD1.8   {d9},[r0],r1
     39     VABD.U8  d13,d4,d8
     40     VLD1.8   {d10},[r0],r1
     41     BEQ      L0xe4
     42     VABD.U8  d12,d5,d4
     43     VABD.U8  d18,d9,d8
     44     VCGT.U8  d16,d0,d13
     45     VMOV.32  d26[0],r6
     46     VMAX.U8  d12,d18,d12
     47     VMOVL.U8 q13,d26
     48     VABD.U8  d17,d10,d8
     49     VCGT.S16 d27,d26,#0
     50     VCGT.U8  d12,d2,d12
     51     VCGT.U8  d19,d2,d19
     52     VAND     d16,d16,d27
     53     TST      r6,r9
     54     VCGT.U8  d17,d2,d17
     55     VAND     d16,d16,d12
     56     VAND     d12,d16,d17
     57     VAND     d17,d16,d19
     58     BLNE     armVCM4P10_DeblockingChromabSLT4_unsafe
     59     TST      r6,r8
     60     SUB      r0,r0,r1,LSL #2
     61     VTST.16  d26,d26,d1
     62     BLNE     armVCM4P10_DeblockingChromabSGE4_unsafe
     63     VBIT     d29,d13,d26
     64     VBIT     d24,d31,d26
     65     VBIF     d29,d4,d16
     66     VBIF     d24,d8,d16
     67     VST1.8   {d29},[r0],r1
     68     ADDS     r7,r7,r7
     69     VST1.8   {d24},[r0],r1
     70     BNE      L0x38
     71     MOV      r0,#0
     72     VPOP     {d8-d15}
     73     POP      {r4-r10,pc}
     74 L0xe4:
     75     VLD1.8   {d0[]},[r2]
     76     SUB      r0,r0,r1,LSL #1
     77     ADDS     r7,r7,r7
     78     VLD1.8   {d2[]},[r3]
     79     ADD      r5,r5,#4
     80     BNE      L0x38
     81     MOV      r0,#0
     82     VPOP     {d8-d15}
     83     POP      {r4-r10,pc}
     84     .endfunc
     85 
     86     .end
     87 
     88