dc_only_idct_add_neon.asm 1.3 KB
Newer Older
Johann's avatar
Johann committed
1
;
2
;  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
Johann's avatar
Johann committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;
;  Use of this source code is governed by a BSD-style license and patent
;  grant that can be found in the LICENSE file in the root of the source
;  tree. All contributing project authors may be found in the AUTHORS
;  file in the root of the source tree.
;


    EXPORT  |vp8_dc_only_idct_add_neon|
    ARM
    REQUIRE8
    PRESERVE8

    AREA ||.text||, CODE, READONLY, ALIGN=2
17
18
19
20
21

;void vp8_dc_only_idct_add_c(short input_dc, unsigned char *pred_ptr,
;                            int pred_stride, unsigned char *dst_ptr,
;                            int dst_stride)

Johann's avatar
Johann committed
22
23
; r0  input_dc
; r1  pred_ptr
24
25
26
27
; r2  pred_stride
; r3  dst_ptr
; sp  dst_stride

Johann's avatar
Johann committed
28
29
30
31
32
33
|vp8_dc_only_idct_add_neon| PROC
    add             r0, r0, #4
    asr             r0, r0, #3
    ldr             r12, [sp]
    vdup.16         q0, r0

34
35
36
    vld1.32         {d2[0]}, [r1], r2
    vld1.32         {d2[1]}, [r1], r2
    vld1.32         {d4[0]}, [r1], r2
Johann's avatar
Johann committed
37
38
39
40
41
42
43
44
    vld1.32         {d4[1]}, [r1]

    vaddw.u8        q1, q0, d2
    vaddw.u8        q2, q0, d4

    vqmovun.s16     d2, q1
    vqmovun.s16     d4, q2

45
46
47
48
    vst1.32         {d2[0]}, [r3], r12
    vst1.32         {d2[1]}, [r3], r12
    vst1.32         {d4[0]}, [r3], r12
    vst1.32         {d4[1]}, [r3]
John Koleszar's avatar
John Koleszar committed
49

50
    bx              lr
Johann's avatar
Johann committed
51
52

    ENDP
53

Johann's avatar
Johann committed
54
    END