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_FilterDeblockingLuma_VerEdge_I
     14     .func   omxVCM4P10_FilterDeblockingLuma_VerEdge_I
     15 omxVCM4P10_FilterDeblockingLuma_VerEdge_I:
     16     PUSH     {r4-r12,lr}
     17     VPUSH    {d8-d15}
     18     ADD      r7,r2,#1
     19     ADD      r8,r3,#1
     20     VLD1.8   {d0[]},[r2]
     21     SUB      r0,r0,#4
     22     VLD1.8   {d2[]},[r3]
     23     LDR      r4,[sp,#0x6c]
     24     LDR      r5,[sp,#0x68]
     25     MOV      r6,#0
     26     VMOV.I8  d14,#0
     27     VMOV.I8  d15,#0x1
     28     MOV      r9,#0x11000000
     29     ADD      r11,r1,r1
     30 L0x38:
     31     LDRH     r12,[r4],#4
     32     CMP      r12,#0
     33     BEQ      L0x160
     34     ADD      r10,r0,r1
     35     VLD1.8   {d7},[r0],r11
     36     VLD1.8   {d8},[r10],r11
     37     VLD1.8   {d5},[r0],r11
     38     VZIP.8   d7,d8
     39     VLD1.8   {d10},[r10],r11
     40     VLD1.8   {d6},[r0],r11
     41     VZIP.8   d5,d10
     42     VLD1.8   {d9},[r10],r11
     43     VLD1.8   {d4},[r0],r11
     44     VLD1.8   {d11},[r10],r11
     45     VZIP.8   d6,d9
     46     VZIP.16  d8,d10
     47     VZIP.8   d4,d11
     48     SUB      r0,r0,r1,LSL #3
     49     VZIP.16  d7,d5
     50     VZIP.16  d9,d11
     51     VZIP.16  d6,d4
     52     VTRN.32  d8,d9
     53     VTRN.32  d5,d4
     54     VTRN.32  d10,d11
     55     VTRN.32  d7,d6
     56     VABD.U8  d13,d4,d8
     57     VABD.U8  d12,d5,d4
     58     VABD.U8  d18,d9,d8
     59     VABD.U8  d19,d6,d4
     60     TST      r12,#0xff
     61     VCGT.U8  d16,d0,d13
     62     VMAX.U8  d12,d18,d12
     63     VABD.U8  d17,d10,d8
     64     VMOVEQ.32 d16[0],r6
     65     TST      r12,#0xff00
     66     VCGT.U8  d19,d2,d19
     67     VCGT.U8  d12,d2,d12
     68     VMOVEQ.32 d16[1],r6
     69     VCGT.U8  d17,d2,d17
     70     VAND     d16,d16,d12
     71     TST      r12,#4
     72     VAND     d12,d16,d17
     73     VAND     d17,d16,d19
     74     BNE      L0x17c
     75     BL       armVCM4P10_DeblockingLumabSLT4_unsafe
     76     VZIP.8   d7,d6
     77     VZIP.8   d30,d29
     78     VZIP.8   d24,d25
     79     VZIP.8   d10,d11
     80     VZIP.16  d7,d30
     81     ADD      r10,r0,r1
     82     VZIP.16  d24,d10
     83     VZIP.16  d25,d11
     84     VZIP.16  d6,d29
     85     VTRN.32  d7,d24
     86     VTRN.32  d30,d10
     87     VTRN.32  d6,d25
     88     VTRN.32  d29,d11
     89     VST1.8   {d7},[r0],r11
     90     VST1.8   {d24},[r10],r11
     91     VST1.8   {d30},[r0],r11
     92     VST1.8   {d10},[r10],r11
     93     VST1.8   {d6},[r0],r11
     94     VST1.8   {d25},[r10],r11
     95     ADDS     r9,r9,r9
     96     VST1.8   {d29},[r0],r11
     97     ADD      r5,r5,#2
     98     VST1.8   {d11},[r10],r1
     99     SUB      r0,r0,r1,LSL #3
    100     VLD1.8   {d0[]},[r7]
    101     ADD      r0,r0,#4
    102     VLD1.8   {d2[]},[r8]
    103     BCC      L0x38
    104     B        L0x1f0
    105 L0x160:
    106     ADD      r0,r0,#4
    107     ADDS     r9,r9,r9
    108     VLD1.8   {d0[]},[r7]
    109     ADD      r5,r5,#4
    110     VLD1.8   {d2[]},[r8]
    111     BCC      L0x38
    112     B        L0x1f0
    113 L0x17c:
    114     BL       armVCM4P10_DeblockingLumabSGE4_unsafe
    115     VZIP.8   d7,d31
    116     VZIP.8   d30,d29
    117     VZIP.8   d24,d25
    118     VZIP.8   d28,d11
    119     VZIP.16  d7,d30
    120     ADD      r10,r0,r1
    121     VZIP.16  d24,d28
    122     VZIP.16  d25,d11
    123     VZIP.16  d31,d29
    124     VTRN.32  d7,d24
    125     VTRN.32  d30,d28
    126     VTRN.32  d31,d25
    127     VTRN.32  d29,d11
    128     VST1.8   {d7},[r0],r11
    129     VST1.8   {d24},[r10],r11
    130     VST1.8   {d30},[r0],r11
    131     VST1.8   {d28},[r10],r11
    132     VST1.8   {d31},[r0],r11
    133     VST1.8   {d25},[r10],r11
    134     ADDS     r9,r9,r9
    135     VST1.8   {d29},[r0],r11
    136     ADD      r5,r5,#4
    137     VST1.8   {d11},[r10],r11
    138     SUB      r0,r0,r1,LSL #3
    139     VLD1.8   {d0[]},[r7]
    140     ADD      r0,r0,#4
    141     VLD1.8   {d2[]},[r8]
    142     BCC      L0x38
    143 L0x1f0:
    144     SUB      r4,r4,#0xe
    145     SUB      r5,r5,#0xe
    146     SUB      r0,r0,#0x10
    147     VLD1.8   {d0[]},[r2]
    148     ADD      r0,r0,r1,LSL #3
    149     VLD1.8   {d2[]},[r3]
    150     BNE      L0x38
    151     MOV      r0,#0
    152     VPOP     {d8-d15}
    153     POP      {r4-r12,pc}
    154     .endfunc
    155 
    156     .end
    157 
    158