view src/hermes/mmx_main.asm @ 4215:d83830711a5b SDL-1.2

Fixed bug #615 Scott McCreary 2008-08-21 10:48:14 PDT This patch adds support for Haiku. http://ports.haiku-files.org/browser/haikuports/trunk/media-libs/libsdl/SDL-1.2.13-haiku.diff Haiku is an open-source recreation of BeOS. It has better POSIX compliance than beOS did, and other improved features, which in some cases causes us to have to "undo" previous BeOS workarounds. Here's our port log entry for it, showing the steps to force the changes into configure and Makefile: http://ports.haiku-files.org/wiki/media-libs/libsdl/1.2.13/1 Note that this was only tried on 1.2.13 stable so far. Haiku is using a newer config.guess / config.sub that doesn't yet seem to be in the released libtool, so we are having to copy it in for now. http://haiku-files.org/files/optional-packages/
author Sam Lantinga <slouken@libsdl.org>
date Mon, 21 Sep 2009 09:18:42 +0000
parents 540466e900db
children
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

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]

	call [ebp+32]

	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