Home | History | Annotate | Download | only in armv6
      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     EXPORT  |vp8_dc_only_idct_add_v6|
     11 
     12     AREA    |.text|, CODE, READONLY
     13 
     14 ;void vp8_dc_only_idct_add_v6(short input_dc, unsigned char *pred_ptr,
     15 ;                             unsigned char *dst_ptr, int pitch, int stride)
     16 ; r0  input_dc
     17 ; r1  pred_ptr
     18 ; r2  dest_ptr
     19 ; r3  pitch
     20 ; sp  stride
     21 
     22 |vp8_dc_only_idct_add_v6| PROC
     23     stmdb       sp!, {r4 - r7, lr}
     24 
     25     add         r0, r0, #4                ; input_dc += 4
     26     ldr         r12, c0x0000FFFF
     27     ldr         r4, [r1], r3
     28     ldr         r6, [r1], r3
     29     and         r0, r12, r0, asr #3       ; input_dc >> 3 + mask
     30     ldr         lr, [sp, #20]
     31     orr         r0, r0, r0, lsl #16       ; a1 | a1
     32 
     33     uxtab16     r5, r0, r4                ; a1+2 | a1+0
     34     uxtab16     r4, r0, r4, ror #8        ; a1+3 | a1+1
     35     uxtab16     r7, r0, r6
     36     uxtab16     r6, r0, r6, ror #8
     37     usat16      r5, #8, r5
     38     usat16      r4, #8, r4
     39     usat16      r7, #8, r7
     40     usat16      r6, #8, r6
     41     orr         r5, r5, r4, lsl #8
     42     orr         r7, r7, r6, lsl #8
     43     ldr         r4, [r1], r3
     44     ldr         r6, [r1]
     45     str         r5, [r2], lr
     46     str         r7, [r2], lr
     47 
     48     uxtab16     r5, r0, r4
     49     uxtab16     r4, r0, r4, ror #8
     50     uxtab16     r7, r0, r6
     51     uxtab16     r6, r0, r6, ror #8
     52     usat16      r5, #8, r5
     53     usat16      r4, #8, r4
     54     usat16      r7, #8, r7
     55     usat16      r6, #8, r6
     56     orr         r5, r5, r4, lsl #8
     57     orr         r7, r7, r6, lsl #8
     58     str         r5, [r2], lr
     59     str         r7, [r2]
     60 
     61     ldmia       sp!, {r4 - r7, pc}
     62 
     63     ENDP  ; |vp8_dc_only_idct_add_v6|
     64 
     65 ; Constant Pool
     66 c0x0000FFFF DCD 0x0000FFFF
     67     END
     68