101 lines
2.5 KiB
C
101 lines
2.5 KiB
C
/*
|
|
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
|