Initial standalone code, some stuff runs
[sdl_omap.git] / src / hermes / HeadMMX.h
CommitLineData
e14743d1 1/*
2 Header definitions for the MMX routines for the HERMES library
3 Copyright (c) 1998 Christian Nentwich (c.nentwich@cs.ucl.ac.uk)
4 This source code is licensed under the GNU LGPL
5
6 Please refer to the file COPYING.LIB contained in the distribution for
7 licensing conditions
8*/
9#include "SDL_config.h"
10
11#ifndef __HERMES_HEAD_MMX__
12#define __HERMES_HEAD_MMX__
13
14
15/* If you cannot stand ifdefs, then please do not look into this file, it's
16 going to end your life :) */
17
18#ifdef X86_ASSEMBLER
19
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25void STACKCALL ConvertMMX(HermesConverterInterface *);
26
27void STACKCALL ClearMMX_32(HermesClearInterface *);
28void STACKCALL ClearMMX_24(HermesClearInterface *);
29void STACKCALL ClearMMX_16(HermesClearInterface *);
30void STACKCALL ClearMMX_8(HermesClearInterface *);
31
32void ConvertMMXpII32_24RGB888();
33void ConvertMMXpII32_16RGB565();
34void ConvertMMXpII32_16BGR565();
35void ConvertMMXpII32_16RGB555();
36void ConvertMMXpII32_16BGR565();
37void ConvertMMXpII32_16BGR555();
38
39void ConvertMMXp32_16RGB555();
40
41#ifdef __cplusplus
42}
43#endif
44
45
46
47/* Fix the underscore business with ELF compilers */
48
49#if (defined(__ELF__) && defined(__GNUC__)) || defined(__SUNPRO_C)
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53
54 extern void _ConvertMMX(HermesConverterInterface *);
55 extern void _ConvertMMXpII32_24RGB888();
56 extern void _ConvertMMXpII32_16RGB565();
57 extern void _ConvertMMXpII32_16BGR565();
58 extern void _ConvertMMXpII32_16RGB555();
59 extern void _ConvertMMXpII32_16BGR555();
60
61 #define ConvertMMX _ConvertMMX
62 #define ConvertMMXpII32_24RGB888 _ConvertMMXpII32_24RGB888
63 #define ConvertMMXpII32_16RGB565 _ConvertMMXpII32_16RGB565
64 #define ConvertMMXpII32_16BGR565 _ConvertMMXpII32_16BGR565
65 #define ConvertMMXpII32_16RGB555 _ConvertMMXpII32_16RGB555
66 #define ConvertMMXpII32_16BGR555 _ConvertMMXpII32_16BGR555
67
68 #ifdef __cplusplus
69 }
70 #endif
71
72#endif /* ELF and GNUC */
73
74
75
76
77/* Make it work with Watcom */
78#ifdef __WATCOMC__
79#pragma warning 601 9
80
81#pragma aux ConvertMMX "_*" modify [EAX EBX ECX EDX ESI EDI]
82
83#pragma aux ClearMMX_32 "_*" modify [EAX EBX ECX EDX ESI EDI]
84#pragma aux ClearMMX_24 "_*" modify [EAX EBX ECX EDX ESI EDI]
85#pragma aux ClearMMX_16 "_*" modify [EAX EBX ECX EDX ESI EDI]
86#pragma aux ClearMMX_8 "_*" modify [EAX EBX ECX EDX ESI EDI]
87
88#pragma aux ConvertMMXpII32_24RGB888 "_*"
89#pragma aux ConvertMMXpII32_16RGB565 "_*"
90#pragma aux ConvertMMXpII32_16BGR565 "_*"
91#pragma aux ConvertMMXpII32_16RGB555 "_*"
92#pragma aux ConvertMMXpII32_16BGR555 "_*"
93#pragma aux ConvertMMXp32_16RGB555 "_*"
94
95#endif /* WATCOM */
96
97#endif /* X86_ASSEMBLER */
98
99
100#endif