section .data align=16 align 16 mmx_yuy2_00ff dw 000ffh, 000ffh, 000ffh, 000ffh section .text ; -- Import/Export ------------------------------------------------------ global mb_yuy2yuv_mmx struc macroblock_yuy2_param .dsty: resd 1 .dstu: resd 1 .dstv: resd 1 .dypitch: resd 1 .dcpitch: resd 1 .src: resd 1 .spitch: resd 1 endstruc ; ----------------------------------------------------------------------- ; -= mb_yuy2yuv_mmx =- ; ; extern "C" int __fastcall mb_yuy2yuv_mmx( macroblock_param *param ); ; ----------------------------------------------------------------------- align 16 mb_yuy2yuv_mmx: push ebx push edx push esi push edi push ebp mov esi, [ecx + macroblock_yuy2_param.src] mov edx, [ecx + macroblock_yuy2_param.spitch] mov edi, [ecx + macroblock_yuy2_param.dsty] mov eax, [ecx + macroblock_yuy2_param.dstu] mov ebx, [ecx + macroblock_yuy2_param.dstv] mov ebp, [ecx + macroblock_yuy2_param.dypitch] mov ecx, [ecx + macroblock_yuy2_param.dcpitch] movq mm6, [mmx_yuy2_00ff] pop ebp pop edi pop esi pop edx pop ebx retn