symbian-qemu-0.9.1-12/libsdl-trunk/src/hermes/x86_main.asm
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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 
       
    12 BITS 32
       
    13 
       
    14 %include "common.inc"
       
    15 
       
    16 SDL_FUNC _ConvertX86
       
    17 
       
    18 SECTION .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 	
       
    52 y_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 
       
    68 endconvert:	
       
    69 	ret		
       
    70 
       
    71 
       
    72 
       
    73 %ifidn __OUTPUT_FORMAT__,elf
       
    74 section .note.GNU-stack noalloc noexec nowrite progbits
       
    75 %endif