diff options
Diffstat (limited to 'distrib/sdl-1.2.15/src/hermes/HeadMMX.h')
-rw-r--r-- | distrib/sdl-1.2.15/src/hermes/HeadMMX.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/src/hermes/HeadMMX.h b/distrib/sdl-1.2.15/src/hermes/HeadMMX.h new file mode 100644 index 0000000..5d9850c --- /dev/null +++ b/distrib/sdl-1.2.15/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 |