Home | History | Annotate | Download | only in neon
      1 ;
      2 ;  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
      3 ;
      4 ;  Use of this source code is governed by a BSD-style license and patent
      5 ;  grant that can be found in the LICENSE file in the root of the source
      6 ;  tree. All contributing project authors may be found in the AUTHORS
      7 ;  file in the root of the source tree.
      8 ;
      9 
     10 
     11     EXPORT  |vp8_dc_only_idct_add_neon|
     12     ARM
     13     REQUIRE8
     14     PRESERVE8
     15 
     16     AREA ||.text||, CODE, READONLY, ALIGN=2
     17 ;void vp8_dc_only_idct_add_neon(short input_dc, unsigned char *pred_ptr,
     18 ;                               unsigned char *dst_ptr, int pitch, int stride)
     19 ; r0  input_dc
     20 ; r1  pred_ptr
     21 ; r2  dst_ptr
     22 ; r3  pitch
     23 ; sp  stride
     24 |vp8_dc_only_idct_add_neon| PROC
     25     add             r0, r0, #4
     26     asr             r0, r0, #3
     27     ldr             r12, [sp]
     28     vdup.16         q0, r0
     29 
     30     vld1.32         {d2[0]}, [r1], r3
     31     vld1.32         {d2[1]}, [r1], r3
     32     vld1.32         {d4[0]}, [r1], r3
     33     vld1.32         {d4[1]}, [r1]
     34 
     35     vaddw.u8        q1, q0, d2
     36     vaddw.u8        q2, q0, d4
     37 
     38     vqmovun.s16     d2, q1
     39     vqmovun.s16     d4, q2
     40 
     41     vst1.32         {d2[0]}, [r2], r12
     42     vst1.32         {d2[1]}, [r2], r12
     43     vst1.32         {d4[0]}, [r2], r12
     44     vst1.32         {d4[1]}, [r2]
     45 
     46     bx             lr
     47 
     48     ENDP
     49     END
     50