summaryrefslogtreecommitdiffstats
path: root/apps/plugins/sdl/src/hermes/HeadMMX.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/sdl/src/hermes/HeadMMX.h')
-rw-r--r--apps/plugins/sdl/src/hermes/HeadMMX.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/apps/plugins/sdl/src/hermes/HeadMMX.h b/apps/plugins/sdl/src/hermes/HeadMMX.h
new file mode 100644
index 0000000000..5d9850cca9
--- /dev/null
+++ b/apps/plugins/sdl/src/hermes/HeadMMX.h
@@ -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__)) || defined(__SUNPRO_C)
+ #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