symbian-qemu-0.9.1-12/libsdl-trunk/src/hermes/HeadMMX.h
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/libsdl-trunk/src/hermes/HeadMMX.h	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,100 @@
+/*
+   Header definitions for the MMX routines for the HERMES library
+   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
+*/
+#include "SDL_config.h"
+
+#ifndef __HERMES_HEAD_MMX__
+#define __HERMES_HEAD_MMX__
+
+
+/* If you cannot stand ifdefs, then please do not look into this file, it's
+   going to end your life :) */
+
+#ifdef X86_ASSEMBLER
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void STACKCALL ConvertMMX(HermesConverterInterface *);
+
+void STACKCALL ClearMMX_32(HermesClearInterface *);
+void STACKCALL ClearMMX_24(HermesClearInterface *);
+void STACKCALL ClearMMX_16(HermesClearInterface *);
+void STACKCALL ClearMMX_8(HermesClearInterface *);
+
+void ConvertMMXpII32_24RGB888();
+void ConvertMMXpII32_16RGB565();
+void ConvertMMXpII32_16BGR565();
+void ConvertMMXpII32_16RGB555();
+void ConvertMMXpII32_16BGR565();
+void ConvertMMXpII32_16BGR555();
+
+void ConvertMMXp32_16RGB555();
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+/* Fix the underscore business with ELF compilers */
+
+#if defined(__ELF__) && defined(__GNUC__)
+  #ifdef __cplusplus 
+  extern "C" {   
+  #endif
+
+  extern void _ConvertMMX(HermesConverterInterface *);
+  extern void _ConvertMMXpII32_24RGB888();
+  extern void _ConvertMMXpII32_16RGB565();
+  extern void _ConvertMMXpII32_16BGR565();
+  extern void _ConvertMMXpII32_16RGB555();
+  extern void _ConvertMMXpII32_16BGR555();
+
+  #define ConvertMMX _ConvertMMX
+  #define ConvertMMXpII32_24RGB888 _ConvertMMXpII32_24RGB888
+  #define ConvertMMXpII32_16RGB565 _ConvertMMXpII32_16RGB565
+  #define ConvertMMXpII32_16BGR565 _ConvertMMXpII32_16BGR565
+  #define ConvertMMXpII32_16RGB555 _ConvertMMXpII32_16RGB555
+  #define ConvertMMXpII32_16BGR555 _ConvertMMXpII32_16BGR555
+
+  #ifdef __cplusplus
+  }
+  #endif
+
+#endif /* ELF and GNUC */
+
+
+
+
+/* Make it work with Watcom */
+#ifdef __WATCOMC__
+#pragma warning 601 9
+
+#pragma aux ConvertMMX "_*" modify [EAX EBX ECX EDX ESI EDI]
+
+#pragma aux ClearMMX_32 "_*" modify [EAX EBX ECX EDX ESI EDI]
+#pragma aux ClearMMX_24 "_*" modify [EAX EBX ECX EDX ESI EDI]
+#pragma aux ClearMMX_16 "_*" modify [EAX EBX ECX EDX ESI EDI]
+#pragma aux ClearMMX_8 "_*" modify [EAX EBX ECX EDX ESI EDI]
+
+#pragma aux ConvertMMXpII32_24RGB888 "_*"
+#pragma aux ConvertMMXpII32_16RGB565 "_*"
+#pragma aux ConvertMMXpII32_16BGR565 "_*"
+#pragma aux ConvertMMXpII32_16RGB555 "_*"
+#pragma aux ConvertMMXpII32_16BGR555 "_*"
+#pragma aux ConvertMMXp32_16RGB555 "_*"
+
+#endif /* WATCOM */
+
+#endif /* X86_ASSEMBLER */
+
+
+#endif