--- mem_transfer_mmx.asm 2004/12/19 13:16:50 1.16 +++ mem_transfer_mmx.asm 2008/11/11 20:46:24 1.19 @@ -21,7 +21,7 @@ ; * along with this program ; if not, write to the Free Software ; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ; * -; * $Id: mem_transfer_mmx.asm,v 1.16 2004/12/19 13:16:50 syskin Exp $ +; * $Id: mem_transfer_mmx.asm,v 1.19 2008/11/11 20:46:24 Isibaar Exp $ ; * ; ***************************************************************************/ @@ -32,15 +32,19 @@ %ifdef MARK_FUNCS global _%1:function %1.endfunc-%1 %define %1 _%1:function %1.endfunc-%1 + %define ENDFUNC .endfunc %else global _%1 %define %1 _%1 + %define ENDFUNC %endif %else %ifdef MARK_FUNCS global %1:function %1.endfunc-%1 + %define ENDFUNC .endfunc %else global %1 + %define ENDFUNC %endif %endif %endmacro @@ -74,6 +78,7 @@ cglobal transfer_8to16sub2ro_xmm cglobal transfer_16to8add_mmx cglobal transfer8x8_copy_mmx +cglobal transfer8x4_copy_mmx ;----------------------------------------------------------------------------- ; @@ -112,7 +117,7 @@ COPY_8_TO_16 2 COPY_8_TO_16 3 ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- ; @@ -148,7 +153,7 @@ lea ecx,[ecx+2*edx] COPY_16_TO_8 3 ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- ; @@ -212,7 +217,7 @@ pop ebx ret -.endfunc +ENDFUNC ALIGN 16 @@ -231,7 +236,7 @@ pop ebx ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- @@ -330,7 +335,7 @@ pop esi pop ebx ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- ; @@ -398,7 +403,7 @@ pop esi pop ebx ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- @@ -465,7 +470,7 @@ pop esi pop ebx ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- @@ -511,7 +516,7 @@ lea ecx,[ecx+2*edx] COPY_16_TO_8_ADD 3 ret -.endfunc +ENDFUNC ;----------------------------------------------------------------------------- ; @@ -544,5 +549,31 @@ lea ecx,[ecx+2*edx] COPY_8_TO_8 ret -.endfunc +ENDFUNC + +;----------------------------------------------------------------------------- +; +; void transfer8x4_copy_mmx(uint8_t * const dst, +; const uint8_t * const src, +; const uint32_t stride); +; +; +;----------------------------------------------------------------------------- + +ALIGN 16 +transfer8x4_copy_mmx: + mov ecx, [esp+ 4] ; Dst + mov eax, [esp+ 8] ; Src + mov edx, [esp+12] ; Stride + + COPY_8_TO_8 + lea ecx,[ecx+2*edx] + COPY_8_TO_8 + ret +ENDFUNC + + +%ifidn __OUTPUT_FORMAT__,elf +section ".note.GNU-stack" noalloc noexec nowrite progbits +%endif