1 --- SDL-1.2.8/src/hermes/HeadMMX.h.orig 2001-04-26 18:45:45.000000000 +0200
2 +++ SDL-1.2.8/src/hermes/HeadMMX.h 2005-05-05 22:32:19.000000000 +0200
4 #ifndef __HERMES_HEAD_MMX__
5 #define __HERMES_HEAD_MMX__
8 /* If you cannot stand ifdefs, then please do not look into this file, it's
9 going to end your life :) */
18 void STACKCALL ConvertMMX(HermesConverterInterface *);
20 -void STACKCALL ClearMMX_32(HermesClearInterface *);
21 -void STACKCALL ClearMMX_24(HermesClearInterface *);
22 -void STACKCALL ClearMMX_16(HermesClearInterface *);
23 -void STACKCALL ClearMMX_8(HermesClearInterface *);
25 void ConvertMMXpII32_24RGB888();
26 void ConvertMMXpII32_16RGB565();
27 void ConvertMMXpII32_16BGR565();
34 -/* Fix the underscore business with ELF compilers */
36 -#if defined(__ELF__) && defined(__GNUC__)
41 - void ConvertMMX(HermesConverterInterface *) __attribute__ ((alias ("_ConvertMMX")));
43 - void ClearMMX_32(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_32")));
44 - void ClearMMX_24(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_24")));
45 - void ClearMMX_16(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_16")));
46 - void ClearMMX_8(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_8")));
48 - void ConvertMMXp32_16RGB555() __attribute__ ((alias ("_ConvertMMXp32_16RGB555")));
51 - void ConvertMMXpII32_24RGB888() __attribute__ ((alias ("_ConvertMMXpII32_24RGB888")));
52 - void ConvertMMXpII32_16RGB565() __attribute__ ((alias ("_ConvertMMXpII32_16RGB565")));
53 - void ConvertMMXpII32_16BGR565() __attribute__ ((alias ("_ConvertMMXpII32_16BGR565")));
54 - void ConvertMMXpII32_16RGB555() __attribute__ ((alias ("_ConvertMMXpII32_16RGB555")));
55 - void ConvertMMXpII32_16BGR555() __attribute__ ((alias ("_ConvertMMXpII32_16BGR555")));
61 -#endif /* ELF and GNUC */
66 /* Make it work with Watcom */
73 -#endif /* X86_ASSEMBLER */
77 --- SDL-1.2.8/src/hermes/HeadX86.h.orig 2002-06-08 19:45:39.000000000 +0200
78 +++ SDL-1.2.8/src/hermes/HeadX86.h 2005-05-05 22:32:11.000000000 +0200
80 #ifndef __HERMES_HEAD_X86__
81 #define __HERMES_HEAD_X86__
86 /* If you can't stand IFDEFS, then close your eyes now, please :) */
88 /* Ok, we start with normal function definitions */
94 void STACKCALL ConvertX86(HermesConverterInterface *);
95 -void STACKCALL ClearX86_32(HermesClearInterface *);
96 -void STACKCALL ClearX86_24(HermesClearInterface *);
97 -void STACKCALL ClearX86_16(HermesClearInterface *);
98 -void STACKCALL ClearX86_8(HermesClearInterface *);
100 int STACKCALL Hermes_X86_CPU();
103 void ConvertX86p32_16BGR555();
104 void ConvertX86p32_8RGB332();
106 -void ConvertX86p16_32RGB888();
107 -void ConvertX86p16_32BGR888();
108 -void ConvertX86p16_32RGBA888();
109 -void ConvertX86p16_32BGRA888();
110 -void ConvertX86p16_24RGB888();
111 -void ConvertX86p16_24BGR888();
112 void ConvertX86p16_16BGR565();
113 void ConvertX86p16_16RGB555();
114 void ConvertX86p16_16BGR555();
115 void ConvertX86p16_8RGB332();
117 -void CopyX86p_4byte();
118 -void CopyX86p_3byte();
119 -void CopyX86p_2byte();
120 -void CopyX86p_1byte();
122 -void ConvertX86pI8_32();
123 -void ConvertX86pI8_24();
124 -void ConvertX86pI8_16();
126 -extern int ConvertX86p16_32RGB888_LUT_X86[512];
127 -extern int ConvertX86p16_32BGR888_LUT_X86[512];
128 -extern int ConvertX86p16_32RGBA888_LUT_X86[512];
129 -extern int ConvertX86p16_32BGRA888_LUT_X86[512];
138 -/* Now fix up the ELF underscore problem */
140 -#if defined(__ELF__) && defined(__GNUC__)
145 - int Hermes_X86_CPU() __attribute__ ((alias ("_Hermes_X86_CPU")));
147 - void ConvertX86(HermesConverterInterface *) __attribute__ ((alias ("_ConvertX86")));
150 - void ClearX86_32(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_32")));
151 - void ClearX86_24(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_24")));
152 - void ClearX86_16(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_16")));
153 - void ClearX86_8(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_8")));
156 - void ConvertX86p32_32BGR888() __attribute__ ((alias ("_ConvertX86p32_32BGR888")));
157 - void ConvertX86p32_32RGBA888() __attribute__ ((alias ("_ConvertX86p32_32RGBA888")));
158 - void ConvertX86p32_32BGRA888() __attribute__ ((alias ("_ConvertX86p32_32BGRA888")));
159 - void ConvertX86p32_24RGB888() __attribute__ ((alias ("_ConvertX86p32_24RGB888")));
160 - void ConvertX86p32_24BGR888() __attribute__ ((alias ("_ConvertX86p32_24BGR888")));
161 - void ConvertX86p32_16RGB565() __attribute__ ((alias ("_ConvertX86p32_16RGB565")));
162 - void ConvertX86p32_16BGR565() __attribute__ ((alias ("_ConvertX86p32_16BGR565")));
163 - void ConvertX86p32_16RGB555() __attribute__ ((alias ("_ConvertX86p32_16RGB555")));
164 - void ConvertX86p32_16BGR555() __attribute__ ((alias ("_ConvertX86p32_16BGR555")));
165 - void ConvertX86p32_8RGB332() __attribute__ ((alias ("_ConvertX86p32_8RGB332")));
168 - void ConvertX86p16_32RGB888() __attribute__ ((alias ("_ConvertX86p16_32RGB888")));
169 - void ConvertX86p16_32BGR888() __attribute__ ((alias ("_ConvertX86p16_32BGR888")));
170 - void ConvertX86p16_32RGBA888() __attribute__ ((alias ("_ConvertX86p16_32RGBA888")));
171 - void ConvertX86p16_32BGRA888() __attribute__ ((alias ("_ConvertX86p16_32BGRA888")));
172 - void ConvertX86p16_24RGB888() __attribute__ ((alias ("_ConvertX86p16_24RGB888")));
173 - void ConvertX86p16_24BGR888() __attribute__ ((alias ("_ConvertX86p16_24BGR888")));
175 - void ConvertX86p16_16BGR565() __attribute__ ((alias ("_ConvertX86p16_16BGR565")));
176 - void ConvertX86p16_16RGB555() __attribute__ ((alias ("_ConvertX86p16_16RGB555")));
177 - void ConvertX86p16_16BGR555() __attribute__ ((alias ("_ConvertX86p16_16BGR555")));
178 - void ConvertX86p16_8RGB332() __attribute__ ((alias ("_ConvertX86p16_8RGB332")));
181 - void CopyX86p_4byte() __attribute__ ((alias ("_CopyX86p_4byte")));
182 - void CopyX86p_3byte() __attribute__ ((alias ("_CopyX86p_3byte")));
183 - void CopyX86p_2byte() __attribute__ ((alias ("_CopyX86p_2byte")));
184 - void CopyX86p_1byte() __attribute__ ((alias ("_CopyX86p_1byte")));
186 - void ConvertX86pI8_32() __attribute__ ((alias ("_ConvertX86pI8_32")));
187 - void ConvertX86pI8_24() __attribute__ ((alias ("_ConvertX86pI8_24")));
188 - void ConvertX86pI8_16() __attribute__ ((alias ("_ConvertX86pI8_16")));
190 - extern int ConvertX86p16_32RGB888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGB888_LUT_X86")));
191 - extern int ConvertX86p16_32BGR888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGR888_LUT_X86")));
192 - extern int ConvertX86p16_32RGBA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGBA888_LUT_X86")));
193 - extern int ConvertX86p16_32BGRA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGRA888_LUT_X86")));
200 -#endif /* ELF & GNU */
204 /* Make it run with WATCOM C */
206 #pragma warning 601 9
209 #endif /* __WATCOMC__ */
212 -#endif /* X86_ASSEMBLER */
216 --- SDL-1.2.8/src/hermes/mmx_main.asm.orig 2005-05-05 22:38:42.000000000 +0200
217 +++ SDL-1.2.8/src/hermes/mmx_main.asm 2005-05-05 22:38:46.000000000 +0200
234 --- SDL-1.2.8/src/hermes/mmxp2_32.asm.orig 2002-06-08 19:45:39.000000000 +0200
235 +++ SDL-1.2.8/src/hermes/mmxp2_32.asm 2005-05-05 22:41:00.000000000 +0200
237 GLOBAL _ConvertMMXpII32_16BGR565
238 GLOBAL _ConvertMMXpII32_16RGB555
239 GLOBAL _ConvertMMXpII32_16BGR555
240 +GLOBAL ConvertMMXpII32_24RGB888
241 +GLOBAL ConvertMMXpII32_16RGB565
242 +GLOBAL ConvertMMXpII32_16BGR565
243 +GLOBAL ConvertMMXpII32_16RGB555
244 +GLOBAL ConvertMMXpII32_16BGR555
251 _ConvertMMXpII32_24RGB888:
252 +ConvertMMXpII32_24RGB888:
254 ; set up mm6 as the mask, mm7 as zero
255 movq mm6, qword [mmx32_rgb888_mask]
259 _ConvertMMXpII32_16RGB565:
260 +ConvertMMXpII32_16RGB565:
263 movq mm5, [mmx32_rgb565_b]
267 _ConvertMMXpII32_16BGR565:
268 +ConvertMMXpII32_16BGR565:
270 movq mm5, [mmx32_rgb565_r]
271 movq mm6, [mmx32_rgb565_g]
275 _ConvertMMXpII32_16BGR555:
276 +ConvertMMXpII32_16BGR555:
278 ; the 16BGR555 converter is identical to the RGB555 one,
279 ; except it uses a different multiplier for the pmaddwd
281 ; would almost certainly be faster, even if only a little.
282 ; I did rename 'mmx32_rgb555_add' to 'mmx32_rgb555_mul', which is
283 ; (I think) a more accurate name..
285 _ConvertMMXpII32_16RGB555:
286 +ConvertMMXpII32_16RGB555:
288 movq mm7,qword [mmx32_rgb555_mul]
289 _convert_bgr555_cheat:
290 --- SDL-1.2.8/src/hermes/x86_main.asm.orig 2001-04-26 18:45:45.000000000 +0200
291 +++ SDL-1.2.8/src/hermes/x86_main.asm 2005-05-05 22:42:06.000000000 +0200
299 GLOBAL _Hermes_X86_CPU
301 +GLOBAL Hermes_X86_CPU
314 ;; Hermes_X86_CPU returns the CPUID flags in eax
321 --- SDL-1.2.8/src/hermes/x86p_16.asm.orig 2001-04-26 18:45:45.000000000 +0200
322 +++ SDL-1.2.8/src/hermes/x86p_16.asm 2005-05-05 22:42:58.000000000 +0200
324 GLOBAL _ConvertX86p16_16RGB555
325 GLOBAL _ConvertX86p16_16BGR555
326 GLOBAL _ConvertX86p16_8RGB332
327 +GLOBAL ConvertX86p16_32RGB888
328 +GLOBAL ConvertX86p16_32BGR888
329 +GLOBAL ConvertX86p16_32RGBA888
330 +GLOBAL ConvertX86p16_32BGRA888
331 +GLOBAL ConvertX86p16_24RGB888
332 +GLOBAL ConvertX86p16_24BGR888
333 +GLOBAL ConvertX86p16_16BGR565
334 +GLOBAL ConvertX86p16_16RGB555
335 +GLOBAL ConvertX86p16_16BGR555
336 +GLOBAL ConvertX86p16_8RGB332
343 _ConvertX86p16_16BGR565:
344 +ConvertX86p16_16BGR565:
351 _ConvertX86p16_16RGB555:
352 +ConvertX86p16_16RGB555:
359 _ConvertX86p16_16BGR555:
360 +ConvertX86p16_16BGR555:
367 _ConvertX86p16_8RGB332:
368 +ConvertX86p16_8RGB332:
372 --- SDL-1.2.8/src/hermes/x86p_32.asm.orig 2001-04-26 18:45:45.000000000 +0200
373 +++ SDL-1.2.8/src/hermes/x86p_32.asm 2005-05-05 22:44:07.000000000 +0200
375 GLOBAL _ConvertX86p32_16RGB555
376 GLOBAL _ConvertX86p32_16BGR555
377 GLOBAL _ConvertX86p32_8RGB332
378 +GLOBAL ConvertX86p32_32BGR888
379 +GLOBAL ConvertX86p32_32RGBA888
380 +GLOBAL ConvertX86p32_32BGRA888
381 +GLOBAL ConvertX86p32_24RGB888
382 +GLOBAL ConvertX86p32_24BGR888
383 +GLOBAL ConvertX86p32_16RGB565
384 +GLOBAL ConvertX86p32_16BGR565
385 +GLOBAL ConvertX86p32_16RGB555
386 +GLOBAL ConvertX86p32_16BGR555
387 +GLOBAL ConvertX86p32_8RGB332
394 _ConvertX86p32_32BGR888:
395 +ConvertX86p32_32BGR888:
402 _ConvertX86p32_32RGBA888:
403 +ConvertX86p32_32RGBA888:
410 _ConvertX86p32_32BGRA888:
411 +ConvertX86p32_32BGRA888:
416 ;; 32 bit RGB 888 to 24 BIT RGB 888
418 _ConvertX86p32_24RGB888:
419 +ConvertX86p32_24RGB888:
424 ;; 32 bit RGB 888 to 24 bit BGR 888
426 _ConvertX86p32_24BGR888:
427 +ConvertX86p32_24BGR888:
432 ;; 32 bit RGB 888 to 16 BIT RGB 565
434 _ConvertX86p32_16RGB565:
435 +ConvertX86p32_16RGB565:
441 ;; 32 bit RGB 888 to 16 BIT BGR 565
443 _ConvertX86p32_16BGR565:
444 +ConvertX86p32_16BGR565:
449 ;; 32 BIT RGB TO 16 BIT RGB 555
451 _ConvertX86p32_16RGB555:
452 +ConvertX86p32_16RGB555:
457 ;; 32 BIT RGB TO 16 BIT BGR 555
459 _ConvertX86p32_16BGR555:
460 +ConvertX86p32_16BGR555:
465 ;; FROM 32 BIT RGB to 8 BIT RGB (rrrgggbbb)
466 ;; This routine writes FOUR pixels at once (dword) and then, if they exist
467 ;; the trailing three pixels
468 -_ConvertX86p32_8RGB332:
470 +_ConvertX86p32_8RGB332:
471 +ConvertX86p32_8RGB332: