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_InterpolateLuma_HorAlign9x_unsafe
     14     .func   armVCM4P10_InterpolateLuma_HorAlign9x_unsafe
     15 armVCM4P10_InterpolateLuma_HorAlign9x_unsafe:
     16     MOV      r12,r8
     17     AND      r7,r0,#3
     18     BIC      r0,r0,#3
     19     ADD      pc,pc,r7,LSL #2
     20     NOP
     21     B        Copy0toAligned
     22     B        Copy1toAligned
     23     B        Copy2toAligned
     24     B        Copy3toAligned
     25 Copy0toAligned:
     26     LDM      r0,{r7,r10,r11}
     27     SUBS     r9,r9,#1
     28     ADD      r0,r0,r1
     29     STM      r8!,{r7,r10,r11}
     30     BGT      Copy0toAligned
     31     B        CopyEnd
     32 Copy1toAligned:
     33     LDM      r0,{r7,r10,r11}
     34     SUBS     r9,r9,#1
     35     ADD      r0,r0,r1
     36     LSR      r7,r7,#8
     37     ORR      r7,r7,r10,LSL #24
     38     LSR      r10,r10,#8
     39     ORR      r10,r10,r11,LSL #24
     40     LSR      r11,r11,#8
     41     STM      r8!,{r7,r10,r11}
     42     BGT      Copy1toAligned
     43     B        CopyEnd
     44 Copy2toAligned:
     45     LDM      r0,{r7,r10,r11}
     46     SUBS     r9,r9,#1
     47     ADD      r0,r0,r1
     48     LSR      r7,r7,#16
     49     ORR      r7,r7,r10,LSL #16
     50     LSR      r10,r10,#16
     51     ORR      r10,r10,r11,LSL #16
     52     LSR      r11,r11,#16
     53     STM      r8!,{r7,r10,r11}
     54     BGT      Copy2toAligned
     55     B        CopyEnd
     56 Copy3toAligned:
     57     LDM      r0,{r7,r10,r11}
     58     SUBS     r9,r9,#1
     59     ADD      r0,r0,r1
     60     LSR      r7,r7,#24
     61     ORR      r7,r7,r10,LSL #8
     62     LSR      r10,r10,#24
     63     ORR      r10,r10,r11,LSL #8
     64     LSR      r11,r11,#24
     65     STM      r8!,{r7,r10,r11}
     66     BGT      Copy3toAligned
     67 CopyEnd:
     68     MOV      r0,r12
     69     MOV      r1,#0xc
     70     BX       lr
     71     .endfunc
     72 
     73     .global armVCM4P10_InterpolateLuma_VerAlign4x_unsafe
     74     .func   armVCM4P10_InterpolateLuma_VerAlign4x_unsafe
     75 armVCM4P10_InterpolateLuma_VerAlign4x_unsafe:
     76     AND      r7,r0,#3
     77     BIC      r0,r0,#3
     78     ADD      pc,pc,r7,LSL #2
     79     NOP
     80     B        Copy0toVAligned
     81     B        Copy1toVAligned
     82     B        Copy2toVAligned
     83     B        Copy3toVAligned
     84 Copy0toVAligned:
     85     LDR      r7,[r0],r1
     86     SUBS     r9,r9,#1
     87     STR      r7,[r8],#4
     88     BGT      Copy0toVAligned
     89     B        CopyVEnd
     90 Copy1toVAligned:
     91     LDR      r10,[r0,#4]
     92     LDR      r7,[r0],r1
     93     SUBS     r9,r9,#1
     94     LSL      r10,r10,#24
     95     ORR      r7,r10,r7,LSR #8
     96     STR      r7,[r8],#4
     97     BGT      Copy1toVAligned
     98     B        CopyVEnd
     99 Copy2toVAligned:
    100     LDR      r10,[r0,#4]
    101     LDR      r7,[r0],r1
    102     SUBS     r9,r9,#1
    103     LSL      r10,r10,#16
    104     ORR      r7,r10,r7,LSR #16
    105     STR      r7,[r8],#4
    106     BGT      Copy2toVAligned
    107     B        CopyVEnd
    108 Copy3toVAligned:
    109     LDR      r10,[r0,#4]
    110     LDR      r7,[r0],r1
    111     SUBS     r9,r9,#1
    112     LSL      r10,r10,#8
    113     ORR      r7,r10,r7,LSR #24
    114     STR      r7,[r8],#4
    115     BGT      Copy3toVAligned
    116 CopyVEnd:
    117     SUB      r0,r8,#0x1c
    118     MOV      r1,#4
    119     BX       lr
    120     .endfunc
    121 
    122     .end
    123 
    124