10c1bc742181ded4930842b46e9507372f0b1b963James Dong ;/** 20c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Function: omxVCCOMM_Copy8x8 30c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * 40c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Description: 50c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Copies the reference 8x8 block to the current block. 60c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Parameters: 70c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * [in] pSrc - pointer to the reference block in the source frame; must be aligned on an 8-byte boundary. 80c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * [in] step - distance between the starts of consecutive lines in the reference frame, in bytes; 90c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * must be a multiple of 8 and must be larger than or equal to 8. 100c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * [out] pDst - pointer to the destination block; must be aligned on an 8-byte boundary. 110c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Return Value: 120c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * OMX_Sts_NoErr - no error 130c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * OMX_Sts_BadArgErr - bad arguments; returned under any of the following conditions: 140c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * - one or more of the following pointers is NULL: pSrc, pDst 150c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * - one or more of the following pointers is not aligned on an 8-byte boundary: pSrc, pDst 160c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * - step <8 or step is not a multiple of 8. 170c1bc742181ded4930842b46e9507372f0b1b963James Dong ; */ 180c1bc742181ded4930842b46e9507372f0b1b963James Dong 190c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE omxtypes_s.h 200c1bc742181ded4930842b46e9507372f0b1b963James Dong 210c1bc742181ded4930842b46e9507372f0b1b963James Dong 220c1bc742181ded4930842b46e9507372f0b1b963James Dong M_VARIANTS ARM1136JS 230c1bc742181ded4930842b46e9507372f0b1b963James Dong 240c1bc742181ded4930842b46e9507372f0b1b963James Dong 250c1bc742181ded4930842b46e9507372f0b1b963James Dong 260c1bc742181ded4930842b46e9507372f0b1b963James Dong 270c1bc742181ded4930842b46e9507372f0b1b963James Dong IF ARM1136JS 280c1bc742181ded4930842b46e9507372f0b1b963James Dong 290c1bc742181ded4930842b46e9507372f0b1b963James Dong;//Input Arguments 300c1bc742181ded4930842b46e9507372f0b1b963James DongpSrc RN 0 310c1bc742181ded4930842b46e9507372f0b1b963James DongpDst RN 1 320c1bc742181ded4930842b46e9507372f0b1b963James Dongstep RN 2 330c1bc742181ded4930842b46e9507372f0b1b963James Dong 340c1bc742181ded4930842b46e9507372f0b1b963James Dong;//Local Variables 350c1bc742181ded4930842b46e9507372f0b1b963James DongCount RN 14 360c1bc742181ded4930842b46e9507372f0b1b963James DongX0 RN 2 370c1bc742181ded4930842b46e9507372f0b1b963James DongX1 RN 4 380c1bc742181ded4930842b46e9507372f0b1b963James DongReturn RN 0 390c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCCOMM_Copy8x8,r5 400c1bc742181ded4930842b46e9507372f0b1b963James Dong 410c1bc742181ded4930842b46e9507372f0b1b963James Dong 420c1bc742181ded4930842b46e9507372f0b1b963James Dong 430c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Count,step ;//Count=step 440c1bc742181ded4930842b46e9507372f0b1b963James Dong 450c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],Count ;//pSrc after loading : pSrc=pSrc+step 460c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 470c1bc742181ded4930842b46e9507372f0b1b963James Dong 480c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 490c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],Count 500c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 510c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 520c1bc742181ded4930842b46e9507372f0b1b963James Dong 530c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 540c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],Count 550c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 560c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 570c1bc742181ded4930842b46e9507372f0b1b963James Dong 580c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 590c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],Count 600c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 610c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 620c1bc742181ded4930842b46e9507372f0b1b963James Dong 630c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 640c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Return,#OMX_Sts_NoErr 650c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 660c1bc742181ded4930842b46e9507372f0b1b963James Dong 670c1bc742181ded4930842b46e9507372f0b1b963James Dong 680c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 690c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 700c1bc742181ded4930842b46e9507372f0b1b963James Dong 710c1bc742181ded4930842b46e9507372f0b1b963James Dong END 720c1bc742181ded4930842b46e9507372f0b1b963James Dong