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 armVCM4P10_Average_4x4_Align0_unsafe
     14     .func   armVCM4P10_Average_4x4_Align0_unsafe
     15 armVCM4P10_Average_4x4_Align0_unsafe:
     16     PUSH     {r4-r6,lr}
     17     LDR      r7, =0x80808080
     18     LDR      r12,[r2,#0]
     19     LDR      r10,[r0],r1
     20     LDR      lr,[r2,r3]
     21     LDR      r11,[r0],r1
     22     MVN      r12,r12
     23     MVN      lr,lr
     24     UHSUB8   r5,r10,r12
     25     UHSUB8   r4,r11,lr
     26     EOR      r5,r5,r7
     27     STR      r5,[r2],r3
     28     EOR      r4,r4,r7
     29     STR      r4,[r2],r3
     30     LDR      r10,[r0],r1
     31     LDR      r12,[r2,#0]
     32     LDR      r11,[r0],r1
     33     LDR      lr,[r2,r3]
     34     MVN      r12,r12
     35     UHSUB8   r5,r10,r12
     36     MVN      lr,lr
     37     UHSUB8   r4,r11,lr
     38     EOR      r5,r5,r7
     39     STR      r5,[r2],r3
     40     EOR      r4,r4,r7
     41     STR      r4,[r2],r3
     42     POP      {r4-r6,pc}
     43     .endfunc
     44 
     45     .global armVCM4P10_Average_4x4_Align2_unsafe
     46     .func   armVCM4P10_Average_4x4_Align2_unsafe
     47 armVCM4P10_Average_4x4_Align2_unsafe:
     48     PUSH     {r4-r6,lr}
     49     LDR      r7, =0x80808080
     50     LDR      r4,[r0,#4]
     51     LDR      r10,[r0],r1
     52     LDR      r12,[r2,#0]
     53     LDR      lr,[r2,r3]
     54     LDR      r5,[r0,#4]
     55     LDR      r11,[r0],r1
     56     MVN      r12,r12
     57     MVN      lr,lr
     58     LSR      r10,r10,#16
     59     ORR      r10,r10,r4,LSL #16
     60     LSR      r11,r11,#16
     61     ORR      r11,r11,r5,LSL #16
     62     UHSUB8   r5,r10,r12
     63     UHSUB8   r4,r11,lr
     64     EOR      r5,r5,r7
     65     STR      r5,[r2],r3
     66     EOR      r4,r4,r7
     67     STR      r4,[r2],r3
     68     LDR      r4,[r0,#4]
     69     LDR      r10,[r0],r1
     70     LDR      r12,[r2,#0]
     71     LDR      lr,[r2,r3]
     72     LDR      r5,[r0,#4]
     73     LDR      r11,[r0],r1
     74     MVN      r12,r12
     75     MVN      lr,lr
     76     LSR      r10,r10,#16
     77     ORR      r10,r10,r4,LSL #16
     78     LSR      r11,r11,#16
     79     ORR      r11,r11,r5,LSL #16
     80     UHSUB8   r5,r10,r12
     81     UHSUB8   r4,r11,lr
     82     EOR      r5,r5,r7
     83     STR      r5,[r2],r3
     84     EOR      r4,r4,r7
     85     STR      r4,[r2],r3
     86     POP      {r4-r6,pc}
     87     .endfunc
     88 
     89     .global armVCM4P10_Average_4x4_Align3_unsafe
     90     .func   armVCM4P10_Average_4x4_Align3_unsafe
     91 armVCM4P10_Average_4x4_Align3_unsafe:
     92     PUSH     {r4-r6,lr}
     93     LDR      r7, =0x80808080
     94     LDR      r4,[r0,#4]
     95     LDR      r10,[r0],r1
     96     LDR      r12,[r2,#0]
     97     LDR      lr,[r2,r3]
     98     LDR      r5,[r0,#4]
     99     LDR      r11,[r0],r1
    100     MVN      r12,r12
    101     MVN      lr,lr
    102     LSR      r10,r10,#24
    103     ORR      r10,r10,r4,LSL #8
    104     LSR      r11,r11,#24
    105     ORR      r11,r11,r5,LSL #8
    106     UHSUB8   r5,r10,r12
    107     UHSUB8   r4,r11,lr
    108     EOR      r5,r5,r7
    109     STR      r5,[r2],r3
    110     EOR      r4,r4,r7
    111     STR      r4,[r2],r3
    112     LDR      r4,[r0,#4]
    113     LDR      r10,[r0],r1
    114     LDR      r12,[r2,#0]
    115     LDR      lr,[r2,r3]
    116     LDR      r5,[r0,#4]
    117     LDR      r11,[r0],r1
    118     MVN      r12,r12
    119     MVN      lr,lr
    120     LSR      r10,r10,#24
    121     ORR      r10,r10,r4,LSL #8
    122     LSR      r11,r11,#24
    123     ORR      r11,r11,r5,LSL #8
    124     UHSUB8   r5,r10,r12
    125     UHSUB8   r4,r11,lr
    126     EOR      r5,r5,r7
    127     STR      r5,[r2],r3
    128     EOR      r4,r4,r7
    129     STR      r4,[r2],r3
    130     POP      {r4-r6,pc}
    131     .endfunc
    132 
    133     .end
    134 
    135