Mercurial > sdl-ios-xcode
annotate src/hermes/HeadX86.h @ 1093:d00b4d8508ab
Save all registers on interrupt
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Sun, 17 Jul 2005 07:11:43 +0000 |
parents | c94b390687d2 |
children | bb5ace455586 |
rev | line source |
---|---|
0 | 1 /* |
2 Header definitions for the x86 routines for the HERMES library | |
3 Copyright (c) 1998 Christian Nentwich (brn@eleet.mcb.at) | |
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 | |
10 #ifndef __HERMES_HEAD_X86__ | |
11 #define __HERMES_HEAD_X86__ | |
12 | |
13 | |
14 #ifdef X86_ASSEMBLER | |
15 | |
16 /* If you can't stand IFDEFS, then close your eyes now, please :) */ | |
17 | |
18 /* Ok, we start with normal function definitions */ | |
19 #ifdef __cplusplus | |
20 extern "C" { | |
21 #endif | |
22 | |
23 | |
24 void STACKCALL ConvertX86(HermesConverterInterface *); | |
25 void STACKCALL ClearX86_32(HermesClearInterface *); | |
26 void STACKCALL ClearX86_24(HermesClearInterface *); | |
27 void STACKCALL ClearX86_16(HermesClearInterface *); | |
28 void STACKCALL ClearX86_8(HermesClearInterface *); | |
29 | |
30 int STACKCALL Hermes_X86_CPU(); | |
31 | |
32 void ConvertX86p32_32BGR888(); | |
33 void ConvertX86p32_32RGBA888(); | |
34 void ConvertX86p32_32BGRA888(); | |
35 void ConvertX86p32_24RGB888(); | |
36 void ConvertX86p32_24BGR888(); | |
37 void ConvertX86p32_16RGB565(); | |
38 void ConvertX86p32_16BGR565(); | |
39 void ConvertX86p32_16RGB555(); | |
40 void ConvertX86p32_16BGR555(); | |
41 void ConvertX86p32_8RGB332(); | |
42 | |
43 void ConvertX86p16_32RGB888(); | |
44 void ConvertX86p16_32BGR888(); | |
45 void ConvertX86p16_32RGBA888(); | |
46 void ConvertX86p16_32BGRA888(); | |
47 void ConvertX86p16_24RGB888(); | |
48 void ConvertX86p16_24BGR888(); | |
49 void ConvertX86p16_16BGR565(); | |
50 void ConvertX86p16_16RGB555(); | |
51 void ConvertX86p16_16BGR555(); | |
52 void ConvertX86p16_8RGB332(); | |
53 | |
54 void CopyX86p_4byte(); | |
55 void CopyX86p_3byte(); | |
56 void CopyX86p_2byte(); | |
57 void CopyX86p_1byte(); | |
58 | |
59 void ConvertX86pI8_32(); | |
60 void ConvertX86pI8_24(); | |
61 void ConvertX86pI8_16(); | |
62 | |
366
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
63 extern int ConvertX86p16_32RGB888_LUT_X86[512]; |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
64 extern int ConvertX86p16_32BGR888_LUT_X86[512]; |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
65 extern int ConvertX86p16_32RGBA888_LUT_X86[512]; |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
66 extern int ConvertX86p16_32BGRA888_LUT_X86[512]; |
0 | 67 |
68 #ifdef __cplusplus | |
69 } | |
70 #endif | |
71 | |
72 | |
73 | |
74 | |
75 /* Now fix up the ELF underscore problem */ | |
76 | |
77 #if defined(__ELF__) && defined(__GNUC__) | |
78 #ifdef __cplusplus | |
79 extern "C" { | |
80 #endif | |
81 | |
82 int Hermes_X86_CPU() __attribute__ ((alias ("_Hermes_X86_CPU"))); | |
83 | |
84 void ConvertX86(HermesConverterInterface *) __attribute__ ((alias ("_ConvertX86"))); | |
85 | |
86 #if 0 | |
87 void ClearX86_32(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_32"))); | |
88 void ClearX86_24(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_24"))); | |
89 void ClearX86_16(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_16"))); | |
90 void ClearX86_8(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_8"))); | |
91 #endif | |
92 | |
93 void ConvertX86p32_32BGR888() __attribute__ ((alias ("_ConvertX86p32_32BGR888"))); | |
94 void ConvertX86p32_32RGBA888() __attribute__ ((alias ("_ConvertX86p32_32RGBA888"))); | |
95 void ConvertX86p32_32BGRA888() __attribute__ ((alias ("_ConvertX86p32_32BGRA888"))); | |
96 void ConvertX86p32_24RGB888() __attribute__ ((alias ("_ConvertX86p32_24RGB888"))); | |
97 void ConvertX86p32_24BGR888() __attribute__ ((alias ("_ConvertX86p32_24BGR888"))); | |
98 void ConvertX86p32_16RGB565() __attribute__ ((alias ("_ConvertX86p32_16RGB565"))); | |
99 void ConvertX86p32_16BGR565() __attribute__ ((alias ("_ConvertX86p32_16BGR565"))); | |
100 void ConvertX86p32_16RGB555() __attribute__ ((alias ("_ConvertX86p32_16RGB555"))); | |
101 void ConvertX86p32_16BGR555() __attribute__ ((alias ("_ConvertX86p32_16BGR555"))); | |
102 void ConvertX86p32_8RGB332() __attribute__ ((alias ("_ConvertX86p32_8RGB332"))); | |
103 | |
104 #if 0 | |
105 void ConvertX86p16_32RGB888() __attribute__ ((alias ("_ConvertX86p16_32RGB888"))); | |
106 void ConvertX86p16_32BGR888() __attribute__ ((alias ("_ConvertX86p16_32BGR888"))); | |
107 void ConvertX86p16_32RGBA888() __attribute__ ((alias ("_ConvertX86p16_32RGBA888"))); | |
108 void ConvertX86p16_32BGRA888() __attribute__ ((alias ("_ConvertX86p16_32BGRA888"))); | |
109 void ConvertX86p16_24RGB888() __attribute__ ((alias ("_ConvertX86p16_24RGB888"))); | |
110 void ConvertX86p16_24BGR888() __attribute__ ((alias ("_ConvertX86p16_24BGR888"))); | |
111 #endif | |
112 void ConvertX86p16_16BGR565() __attribute__ ((alias ("_ConvertX86p16_16BGR565"))); | |
113 void ConvertX86p16_16RGB555() __attribute__ ((alias ("_ConvertX86p16_16RGB555"))); | |
114 void ConvertX86p16_16BGR555() __attribute__ ((alias ("_ConvertX86p16_16BGR555"))); | |
115 void ConvertX86p16_8RGB332() __attribute__ ((alias ("_ConvertX86p16_8RGB332"))); | |
116 | |
117 #if 0 | |
118 void CopyX86p_4byte() __attribute__ ((alias ("_CopyX86p_4byte"))); | |
119 void CopyX86p_3byte() __attribute__ ((alias ("_CopyX86p_3byte"))); | |
120 void CopyX86p_2byte() __attribute__ ((alias ("_CopyX86p_2byte"))); | |
121 void CopyX86p_1byte() __attribute__ ((alias ("_CopyX86p_1byte"))); | |
122 | |
123 void ConvertX86pI8_32() __attribute__ ((alias ("_ConvertX86pI8_32"))); | |
124 void ConvertX86pI8_24() __attribute__ ((alias ("_ConvertX86pI8_24"))); | |
125 void ConvertX86pI8_16() __attribute__ ((alias ("_ConvertX86pI8_16"))); | |
126 | |
366
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
127 extern int ConvertX86p16_32RGB888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGB888_LUT_X86"))); |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
128 extern int ConvertX86p16_32BGR888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGR888_LUT_X86"))); |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
129 extern int ConvertX86p16_32RGBA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGBA888_LUT_X86"))); |
c94b390687d2
Avoid a conflict in the definition of int32
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
130 extern int ConvertX86p16_32BGRA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGRA888_LUT_X86"))); |
0 | 131 #endif |
132 | |
133 #ifdef __cplusplus | |
134 } | |
135 #endif | |
136 | |
137 #endif /* ELF & GNU */ | |
138 | |
139 | |
140 | |
141 /* Make it run with WATCOM C */ | |
142 #ifdef __WATCOMC__ | |
143 #pragma warning 601 9 | |
144 | |
145 #pragma aux Hermes_X86_CPU "_*" | |
146 | |
147 #pragma aux ConvertX86 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
148 #pragma aux ClearX86_32 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
149 #pragma aux ClearX86_24 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
150 #pragma aux ClearX86_16 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
151 #pragma aux ClearX86_8 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
152 | |
153 #pragma aux ConvertX86p32_32BGR888 "_*" | |
154 #pragma aux ConvertX86p32_32RGBA888 "_*" | |
155 #pragma aux ConvertX86p32_32BGRA888 "_*" | |
156 #pragma aux ConvertX86p32_24RGB888 "_*" | |
157 #pragma aux ConvertX86p32_24BGR888 "_*" | |
158 #pragma aux ConvertX86p32_16RGB565 "_*" | |
159 #pragma aux ConvertX86p32_16BGR565 "_*" | |
160 #pragma aux ConvertX86p32_16RGB555 "_*" | |
161 #pragma aux ConvertX86p32_16BGR555 "_*" | |
162 #pragma aux ConvertX86p32_8RGB332 "_*" | |
163 | |
164 #pragma aux ConvertX86p16_32RGB888 "_*" | |
165 #pragma aux ConvertX86p16_32BGR888 "_*" | |
166 #pragma aux ConvertX86p16_32RGBA888 "_*" | |
167 #pragma aux ConvertX86p16_32BGRA888 "_*" | |
168 #pragma aux ConvertX86p16_24RGB888 "_*" | |
169 #pragma aux ConvertX86p16_24BGR888 "_*" | |
170 #pragma aux ConvertX86p16_16BGR565 "_*" | |
171 #pragma aux ConvertX86p16_16RGB555 "_*" | |
172 #pragma aux ConvertX86p16_16BGR555 "_*" | |
173 #pragma aux ConvertX86p16_8RGB332 "_*" | |
174 | |
175 #pragma aux CopyX86p_4byte "_*" | |
176 #pragma aux CopyX86p_3byte "_*" | |
177 #pragma aux CopyX86p_2byte "_*" | |
178 #pragma aux CopyX86p_1byte "_*" | |
179 | |
180 #pragma aux ConvertX86pI8_32 "_*" | |
181 #pragma aux ConvertX86pI8_24 "_*" | |
182 #pragma aux ConvertX86pI8_16 "_*" | |
183 | |
184 #pragma aux ConvertX86p16_32RGB888_LUT_X86 "_*" | |
185 #pragma aux ConvertX86p16_32BGR888_LUT_X86 "_*" | |
186 #pragma aux ConvertX86p16_32RGBA888_LUT_X86 "_*" | |
187 #pragma aux ConvertX86p16_32BGRA888_LUT_X86 "_*" | |
188 | |
189 #endif /* __WATCOMC__ */ | |
190 | |
191 | |
192 #endif /* X86_ASSEMBLER */ | |
193 | |
194 | |
195 #endif |