1 #if !defined(_x86_vc_mmxfrag_H)
2 # define _x86_vc_mmxfrag_H (1)
6 #if defined(OC_X86_ASM)
8 /*Copies an 8x8 block of pixels from _src to _dst, assuming _ystride bytes
10 #define OC_FRAG_COPY_MMX(_dst,_src,_ystride) \
12 const unsigned char *src; \
18 __asm mov YSTRIDE,_ystride \
20 __asm movq mm0,[SRC] \
22 __asm movq mm1,[SRC+YSTRIDE] \
23 /*ystride3=ystride*3*/ \
24 __asm lea YSTRIDE3,[YSTRIDE+YSTRIDE*2] \
26 __asm movq mm2,[SRC+YSTRIDE*2] \
28 __asm movq mm3,[SRC+YSTRIDE3] \
30 __asm movq [DST],mm0 \
32 __asm movq [DST+YSTRIDE],mm1 \
33 /*Pointer to next 4.*/ \
34 __asm lea SRC,[SRC+YSTRIDE*4] \
36 __asm movq [DST+YSTRIDE*2],mm2 \
38 __asm movq [DST+YSTRIDE3],mm3 \
39 /*Pointer to next 4.*/ \
40 __asm lea DST,[DST+YSTRIDE*4] \
42 __asm movq mm0,[SRC] \
44 __asm movq mm1,[SRC+YSTRIDE] \
46 __asm movq mm2,[SRC+YSTRIDE*2] \
48 __asm movq mm3,[SRC+YSTRIDE3] \
50 __asm movq [DST],mm0 \
52 __asm movq [DST+YSTRIDE],mm1 \
54 __asm movq [DST+YSTRIDE*2],mm2 \
56 __asm movq [DST+YSTRIDE3],mm3 \