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