omxVCCOMM_Copy8x8_s.s revision 0c1bc742181ded4930842b46e9507372f0b1b963
1 ;/**
2 ; * Function: omxVCCOMM_Copy8x8
3 ; *
4 ; * Description:
5 ; * Copies the reference 8x8 block to the current block.
6 ; * Parameters:
7 ; * [in] pSrc         - pointer to the reference block in the source frame; must be aligned on an 8-byte boundary.
8 ; * [in] step         - distance between the starts of consecutive lines in the reference frame, in bytes;
9 ; *                     must be a multiple of 8 and must be larger than or equal to 8.
10 ; * [out] pDst        - pointer to the destination block; must be aligned on an 8-byte boundary.
11 ; * Return Value:
12 ; * OMX_Sts_NoErr     - no error
13 ; * OMX_Sts_BadArgErr - bad arguments; returned under any of the following conditions:
14 ; *                   - one or more of the following pointers is NULL:  pSrc, pDst
15 ; *                   - one or more of the following pointers is not aligned on an 8-byte boundary:  pSrc, pDst
16 ; *                   - step <8 or step is not a multiple of 8.
17 ; */
18
19   INCLUDE omxtypes_s.h
20
21
22     M_VARIANTS ARM1136JS
23
24
25
26
27     IF ARM1136JS
28
29;//Input Arguments
30pSrc    RN 0
31pDst    RN 1
32step    RN 2
33
34;//Local Variables
35Count   RN 14
36X0      RN 2
37X1      RN 4
38Return  RN 0
39     M_START omxVCCOMM_Copy8x8,r5
40
41
42
43        MOV   Count,step                 ;//Count=step
44
45        LDRD  X0,[pSrc],Count            ;//pSrc after loading : pSrc=pSrc+step
46        LDRD  X1,[pSrc],Count
47
48        STRD  X0,[pDst],#8
49        LDRD  X0,[pSrc],Count
50        STRD  X1,[pDst],#8
51        LDRD  X1,[pSrc],Count
52
53        STRD  X0,[pDst],#8
54        LDRD  X0,[pSrc],Count
55        STRD  X1,[pDst],#8
56        LDRD  X1,[pSrc],Count
57
58        STRD  X0,[pDst],#8
59        LDRD  X0,[pSrc],Count
60        STRD  X1,[pDst],#8
61        LDRD  X1,[pSrc],Count
62
63        STRD  X0,[pDst],#8
64        MOV   Return,#OMX_Sts_NoErr
65        STRD  X1,[pDst],#8
66
67
68        M_END
69        ENDIF
70
71        END
72