aboutsummaryrefslogtreecommitdiffstats
path: root/distrib/sdl-1.2.15/src/hermes/mmx_main.asm
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2012-11-18 15:47:18 -0800
committerSteve Kondik <shade@chemlab.org>2012-11-18 15:47:18 -0800
commita546c7006355a7bd1df4267ee53d0bfa2c017c8c (patch)
tree01be0bf6c0d6968e1468ec9661fd52110f9b05a7 /distrib/sdl-1.2.15/src/hermes/mmx_main.asm
parentbaf3d7830396202df5cc47bd7bcee109c319cdb3 (diff)
parent0f809250987b64f491bd3b4b73c0f0d33036a786 (diff)
downloadexternal_qemu-a546c7006355a7bd1df4267ee53d0bfa2c017c8c.zip
external_qemu-a546c7006355a7bd1df4267ee53d0bfa2c017c8c.tar.gz
external_qemu-a546c7006355a7bd1df4267ee53d0bfa2c017c8c.tar.bz2
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/external/qemu into mr1-staging
Change-Id: I8a4a71ac65b08e6e17f26c942f67a15b85211115
Diffstat (limited to 'distrib/sdl-1.2.15/src/hermes/mmx_main.asm')
-rw-r--r--distrib/sdl-1.2.15/src/hermes/mmx_main.asm74
1 files changed, 74 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/src/hermes/mmx_main.asm b/distrib/sdl-1.2.15/src/hermes/mmx_main.asm
new file mode 100644
index 0000000..00032b9
--- /dev/null
+++ b/distrib/sdl-1.2.15/src/hermes/mmx_main.asm
@@ -0,0 +1,74 @@
+;
+; 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__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif