1; 2; x86 format converters for HERMES 3; Some routines Copyright (c) 1998 Christian Nentwich (brn@eleet.mcb.at) 4; This source code is licensed under the GNU LGPL 5; 6; Please refer to the file COPYING.LIB contained in the distribution for 7; licensing conditions 8; 9; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission 10; 11 12BITS 32 13 14%include "common.inc" 15 16SDL_FUNC _ConvertX86 17 18SECTION .text 19 20;; _ConvertX86: 21;; [ESP+8] ConverterInfo* 22;; -------------------------------------------------------------------------- 23;; ConverterInfo (ebp+..) 24;; 0: void *s_pixels 25;; 4: int s_width 26;; 8: int s_height 27;; 12: int s_add 28;; 16: void *d_pixels 29;; 20: int d_width 30;; 24: int d_height 31;; 28: int d_add 32;; 32: void (*converter_function)() 33;; 36: int32 *lookup 34 35_ConvertX86: 36 push ebp 37 mov ebp,esp 38 39; Save the registers used by the blitters, necessary for optimized code 40 pusha 41 42 mov eax,[ebp+8] 43 44 cmp dword [eax+4],BYTE 0 45 je endconvert 46 47 mov ebp,eax 48 49 mov esi,[ebp+0] 50 mov edi,[ebp+16] 51 52y_loop: 53 mov ecx,[ebp+4] 54 55 call [ebp+32] 56 57 add esi,[ebp+12] 58 add edi,[ebp+28] 59 60 dec dword [ebp+8] 61 jnz y_loop 62 63; Restore the registers used by the blitters, necessary for optimized code 64 popa 65 66 pop ebp 67 68endconvert: 69 ret 70 71 72 73%ifidn __OUTPUT_FORMAT__,elf32 74section .note.GNU-stack noalloc noexec nowrite progbits 75%endif 76