Home | History | Annotate | Download | only in src
      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
     30 pSrc    RN 0
     31 pDst    RN 1
     32 step    RN 2
     33 
     34 ;//Local Variables
     35 Count   RN 14
     36 X0      RN 2
     37 X1      RN 4
     38 Return  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