10c1bc742181ded4930842b46e9507372f0b1b963James Dong ;/** 20c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Function: omxVCCOMM_Copy16x16 30c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * 40c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Description: 50c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * Copies the reference 16x16 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 16-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 16 and must be larger than or equal to 16. 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 16-byte boundary: pSrc, pDst 160c1bc742181ded4930842b46e9507372f0b1b963James Dong ; * - step <16 or step is not a multiple of 16. 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 Dong 390c1bc742181ded4930842b46e9507372f0b1b963James DongReturn RN 0 400c1bc742181ded4930842b46e9507372f0b1b963James Dong 410c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCCOMM_Copy16x16,r5 420c1bc742181ded4930842b46e9507372f0b1b963James Dong 430c1bc742181ded4930842b46e9507372f0b1b963James Dong 440c1bc742181ded4930842b46e9507372f0b1b963James Dong 450c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB Count,step,#8 ;//Count=step-8 460c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 ;//pSrc after loading pSrc=pSrc+8 470c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count ;//pSrc after loading pSrc=pSrc+step 480c1bc742181ded4930842b46e9507372f0b1b963James Dong 490c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 500c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 510c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 520c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 530c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 540c1bc742181ded4930842b46e9507372f0b1b963James Dong 550c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 560c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 570c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 580c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 590c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 600c1bc742181ded4930842b46e9507372f0b1b963James Dong 610c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 620c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 630c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 640c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 650c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 660c1bc742181ded4930842b46e9507372f0b1b963James Dong 670c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 680c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 690c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 700c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 710c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 720c1bc742181ded4930842b46e9507372f0b1b963James Dong 730c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 740c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 750c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 760c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 770c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 780c1bc742181ded4930842b46e9507372f0b1b963James Dong 790c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 800c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 810c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 820c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 830c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 840c1bc742181ded4930842b46e9507372f0b1b963James Dong 850c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 860c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 870c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 880c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 890c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 900c1bc742181ded4930842b46e9507372f0b1b963James Dong 910c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 920c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 930c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 940c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 950c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 960c1bc742181ded4930842b46e9507372f0b1b963James Dong 970c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 980c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 990c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1060c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1120c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong 1150c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1170c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong 1210c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1230c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1250c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong 1270c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1280c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1290c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1300c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1310c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong 1330c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// loading 16 bytes and storing 1340c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1350c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X0,[pSrc],#8 1360c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1370c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRD X1,[pSrc],Count 1380c1bc742181ded4930842b46e9507372f0b1b963James Dong 1390c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X0,[pDst],#8 1400c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Return,#OMX_Sts_NoErr 1410c1bc742181ded4930842b46e9507372f0b1b963James Dong STRD X1,[pDst],#8 1420c1bc742181ded4930842b46e9507372f0b1b963James Dong 1430c1bc742181ded4930842b46e9507372f0b1b963James Dong 1440c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 1450c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 1460c1bc742181ded4930842b46e9507372f0b1b963James Dong 1470c1bc742181ded4930842b46e9507372f0b1b963James Dong END 1480c1bc742181ded4930842b46e9507372f0b1b963James Dong