Mercurial > sdl-ios-xcode
view src/hermes/mmx_main.asm @ 3950:9d9e15ab1697 SDL-1.2
Check if yasm supports a nasm-specific syntax we use (it doesn't in 0.5.0,
which is still common in Linux distros, and does in 0.6.0). Disable it if we
don't, attempting to fallback to using nasm. Thanks to Mike Frysinger for the
patch.
Fixes Bugzilla #393.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Mon, 04 Jun 2007 11:06:48 +0000 |
parents | eb4d9d99849b |
children | 180fa05e98e2 |
line wrap: on
line source
; ; mmx format converter main loops for HERMES ; Some routines Copyright (c) 1998 Christian Nentwich (c.nentwich@cs.ucl.ac.uk) ; This source code is licensed under the GNU LGPL ; ; Please refer to the file COPYING.LIB contained in the distribution for ; licensing conditions ; BITS 32 %include "common.inc" SDL_FUNC _ConvertMMX SDL_FUNC _mmxreturn SECTION .text ;; _ConvertMMX: ;; [ESP+8] ConverterInfo* ;; -------------------------------------------------------------------------- ;; ConverterInfo (ebp+..) ;; 0: void *s_pixels ;; 4: int s_width ;; 8: int s_height ;; 12: int s_add ;; 16: void *d_pixels ;; 20: int d_width ;; 24: int d_height ;; 28: int d_add ;; 32: void (*converter_function)() ;; 36: int32 *lookup _ConvertMMX: push ebp mov ebp,esp ; Save the registers used by the blitters, necessary for optimized code pusha mov eax,[ebp+8] cmp dword [eax+4],BYTE 0 je endconvert mov ebp,eax mov esi,[ebp+0] mov edi,[ebp+16] y_loop: mov ecx,[ebp+4] jmp [ebp+32] _mmxreturn: add esi,[ebp+12] add edi,[ebp+28] dec dword [ebp+8] jnz y_loop ; Restore the registers used by the blitters, necessary for optimized code popa pop ebp endconvert: emms ret %ifidn __OUTPUT_FORMAT__,elf section .note.GNU-stack noalloc noexec nowrite progbits %endif