--- SDL-1.2.8/src/hermes/HeadMMX.h.orig 2001-04-26 18:45:45.000000000 +0200 +++ SDL-1.2.8/src/hermes/HeadMMX.h 2005-05-05 22:32:19.000000000 +0200 @@ -10,24 +10,15 @@ #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(); @@ -41,40 +32,6 @@ } #endif - - -/* Fix the underscore business with ELF compilers */ - -#if defined(__ELF__) && defined(__GNUC__) - #ifdef __cplusplus - extern "C" { - #endif - - void ConvertMMX(HermesConverterInterface *) __attribute__ ((alias ("_ConvertMMX"))); -#if 0 - void ClearMMX_32(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_32"))); - void ClearMMX_24(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_24"))); - void ClearMMX_16(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_16"))); - void ClearMMX_8(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_8"))); - - void ConvertMMXp32_16RGB555() __attribute__ ((alias ("_ConvertMMXp32_16RGB555"))); -#endif - - void ConvertMMXpII32_24RGB888() __attribute__ ((alias ("_ConvertMMXpII32_24RGB888"))); - void ConvertMMXpII32_16RGB565() __attribute__ ((alias ("_ConvertMMXpII32_16RGB565"))); - void ConvertMMXpII32_16BGR565() __attribute__ ((alias ("_ConvertMMXpII32_16BGR565"))); - void ConvertMMXpII32_16RGB555() __attribute__ ((alias ("_ConvertMMXpII32_16RGB555"))); - void ConvertMMXpII32_16BGR555() __attribute__ ((alias ("_ConvertMMXpII32_16BGR555"))); - - #ifdef __cplusplus - } - #endif - -#endif /* ELF and GNUC */ - - - - /* Make it work with Watcom */ #ifdef __WATCOMC__ #pragma warning 601 9 @@ -95,7 +52,4 @@ #endif /* WATCOM */ -#endif /* X86_ASSEMBLER */ - - #endif --- SDL-1.2.8/src/hermes/HeadX86.h.orig 2002-06-08 19:45:39.000000000 +0200 +++ SDL-1.2.8/src/hermes/HeadX86.h 2005-05-05 22:32:11.000000000 +0200 @@ -10,9 +10,6 @@ #ifndef __HERMES_HEAD_X86__ #define __HERMES_HEAD_X86__ - -#ifdef X86_ASSEMBLER - /* If you can't stand IFDEFS, then close your eyes now, please :) */ /* Ok, we start with normal function definitions */ @@ -20,12 +17,7 @@ extern "C" { #endif - void STACKCALL ConvertX86(HermesConverterInterface *); -void STACKCALL ClearX86_32(HermesClearInterface *); -void STACKCALL ClearX86_24(HermesClearInterface *); -void STACKCALL ClearX86_16(HermesClearInterface *); -void STACKCALL ClearX86_8(HermesClearInterface *); int STACKCALL Hermes_X86_CPU(); @@ -40,104 +32,15 @@ void ConvertX86p32_16BGR555(); void ConvertX86p32_8RGB332(); -void ConvertX86p16_32RGB888(); -void ConvertX86p16_32BGR888(); -void ConvertX86p16_32RGBA888(); -void ConvertX86p16_32BGRA888(); -void ConvertX86p16_24RGB888(); -void ConvertX86p16_24BGR888(); void ConvertX86p16_16BGR565(); void ConvertX86p16_16RGB555(); void ConvertX86p16_16BGR555(); void ConvertX86p16_8RGB332(); -void CopyX86p_4byte(); -void CopyX86p_3byte(); -void CopyX86p_2byte(); -void CopyX86p_1byte(); - -void ConvertX86pI8_32(); -void ConvertX86pI8_24(); -void ConvertX86pI8_16(); - -extern int ConvertX86p16_32RGB888_LUT_X86[512]; -extern int ConvertX86p16_32BGR888_LUT_X86[512]; -extern int ConvertX86p16_32RGBA888_LUT_X86[512]; -extern int ConvertX86p16_32BGRA888_LUT_X86[512]; - #ifdef __cplusplus } #endif - - - -/* Now fix up the ELF underscore problem */ - -#if defined(__ELF__) && defined(__GNUC__) - #ifdef __cplusplus - extern "C" { - #endif - - int Hermes_X86_CPU() __attribute__ ((alias ("_Hermes_X86_CPU"))); - - void ConvertX86(HermesConverterInterface *) __attribute__ ((alias ("_ConvertX86"))); - -#if 0 - void ClearX86_32(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_32"))); - void ClearX86_24(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_24"))); - void ClearX86_16(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_16"))); - void ClearX86_8(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_8"))); -#endif - - void ConvertX86p32_32BGR888() __attribute__ ((alias ("_ConvertX86p32_32BGR888"))); - void ConvertX86p32_32RGBA888() __attribute__ ((alias ("_ConvertX86p32_32RGBA888"))); - void ConvertX86p32_32BGRA888() __attribute__ ((alias ("_ConvertX86p32_32BGRA888"))); - void ConvertX86p32_24RGB888() __attribute__ ((alias ("_ConvertX86p32_24RGB888"))); - void ConvertX86p32_24BGR888() __attribute__ ((alias ("_ConvertX86p32_24BGR888"))); - void ConvertX86p32_16RGB565() __attribute__ ((alias ("_ConvertX86p32_16RGB565"))); - void ConvertX86p32_16BGR565() __attribute__ ((alias ("_ConvertX86p32_16BGR565"))); - void ConvertX86p32_16RGB555() __attribute__ ((alias ("_ConvertX86p32_16RGB555"))); - void ConvertX86p32_16BGR555() __attribute__ ((alias ("_ConvertX86p32_16BGR555"))); - void ConvertX86p32_8RGB332() __attribute__ ((alias ("_ConvertX86p32_8RGB332"))); - -#if 0 - void ConvertX86p16_32RGB888() __attribute__ ((alias ("_ConvertX86p16_32RGB888"))); - void ConvertX86p16_32BGR888() __attribute__ ((alias ("_ConvertX86p16_32BGR888"))); - void ConvertX86p16_32RGBA888() __attribute__ ((alias ("_ConvertX86p16_32RGBA888"))); - void ConvertX86p16_32BGRA888() __attribute__ ((alias ("_ConvertX86p16_32BGRA888"))); - void ConvertX86p16_24RGB888() __attribute__ ((alias ("_ConvertX86p16_24RGB888"))); - void ConvertX86p16_24BGR888() __attribute__ ((alias ("_ConvertX86p16_24BGR888"))); -#endif - void ConvertX86p16_16BGR565() __attribute__ ((alias ("_ConvertX86p16_16BGR565"))); - void ConvertX86p16_16RGB555() __attribute__ ((alias ("_ConvertX86p16_16RGB555"))); - void ConvertX86p16_16BGR555() __attribute__ ((alias ("_ConvertX86p16_16BGR555"))); - void ConvertX86p16_8RGB332() __attribute__ ((alias ("_ConvertX86p16_8RGB332"))); - -#if 0 - void CopyX86p_4byte() __attribute__ ((alias ("_CopyX86p_4byte"))); - void CopyX86p_3byte() __attribute__ ((alias ("_CopyX86p_3byte"))); - void CopyX86p_2byte() __attribute__ ((alias ("_CopyX86p_2byte"))); - void CopyX86p_1byte() __attribute__ ((alias ("_CopyX86p_1byte"))); - - void ConvertX86pI8_32() __attribute__ ((alias ("_ConvertX86pI8_32"))); - void ConvertX86pI8_24() __attribute__ ((alias ("_ConvertX86pI8_24"))); - void ConvertX86pI8_16() __attribute__ ((alias ("_ConvertX86pI8_16"))); - - extern int ConvertX86p16_32RGB888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGB888_LUT_X86"))); - extern int ConvertX86p16_32BGR888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGR888_LUT_X86"))); - extern int ConvertX86p16_32RGBA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGBA888_LUT_X86"))); - extern int ConvertX86p16_32BGRA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGRA888_LUT_X86"))); -#endif - - #ifdef __cplusplus - } - #endif - -#endif /* ELF & GNU */ - - - /* Make it run with WATCOM C */ #ifdef __WATCOMC__ #pragma warning 601 9 @@ -188,8 +91,4 @@ #endif /* __WATCOMC__ */ - -#endif /* X86_ASSEMBLER */ - - #endif --- SDL-1.2.8/src/hermes/mmx_main.asm.orig 2005-05-05 22:38:42.000000000 +0200 +++ SDL-1.2.8/src/hermes/mmx_main.asm 2005-05-05 22:38:46.000000000 +0200 @@ -10,6 +10,7 @@ BITS 32 GLOBAL _ConvertMMX +GLOBAL ConvertMMX GLOBAL _mmxreturn SECTION .text @@ -30,6 +31,7 @@ ;; 36: int32 *lookup _ConvertMMX: +ConvertMMX: push ebp mov ebp,esp --- SDL-1.2.8/src/hermes/mmxp2_32.asm.orig 2002-06-08 19:45:39.000000000 +0200 +++ SDL-1.2.8/src/hermes/mmxp2_32.asm 2005-05-05 22:41:00.000000000 +0200 @@ -26,6 +26,11 @@ GLOBAL _ConvertMMXpII32_16BGR565 GLOBAL _ConvertMMXpII32_16RGB555 GLOBAL _ConvertMMXpII32_16BGR555 +GLOBAL ConvertMMXpII32_24RGB888 +GLOBAL ConvertMMXpII32_16RGB565 +GLOBAL ConvertMMXpII32_16BGR565 +GLOBAL ConvertMMXpII32_16RGB555 +GLOBAL ConvertMMXpII32_16BGR555 EXTERN _mmxreturn @@ -51,6 +56,7 @@ SECTION .text _ConvertMMXpII32_24RGB888: +ConvertMMXpII32_24RGB888: ; set up mm6 as the mask, mm7 as zero movq mm6, qword [mmx32_rgb888_mask] @@ -113,6 +119,7 @@ _ConvertMMXpII32_16RGB565: +ConvertMMXpII32_16RGB565: ; set up masks movq mm5, [mmx32_rgb565_b] @@ -180,6 +187,7 @@ _ConvertMMXpII32_16BGR565: +ConvertMMXpII32_16BGR565: movq mm5, [mmx32_rgb565_r] movq mm6, [mmx32_rgb565_g] @@ -248,6 +256,7 @@ jmp _mmxreturn _ConvertMMXpII32_16BGR555: +ConvertMMXpII32_16BGR555: ; the 16BGR555 converter is identical to the RGB555 one, ; except it uses a different multiplier for the pmaddwd @@ -261,7 +270,9 @@ ; would almost certainly be faster, even if only a little. ; I did rename 'mmx32_rgb555_add' to 'mmx32_rgb555_mul', which is ; (I think) a more accurate name.. + _ConvertMMXpII32_16RGB555: +ConvertMMXpII32_16RGB555: movq mm7,qword [mmx32_rgb555_mul] _convert_bgr555_cheat: --- SDL-1.2.8/src/hermes/x86_main.asm.orig 2001-04-26 18:45:45.000000000 +0200 +++ SDL-1.2.8/src/hermes/x86_main.asm 2005-05-05 22:42:06.000000000 +0200 @@ -12,10 +12,11 @@ BITS 32 GLOBAL _ConvertX86 +GLOBAL ConvertX86 GLOBAL _x86return GLOBAL _Hermes_X86_CPU - +GLOBAL Hermes_X86_CPU SECTION .data @@ -40,6 +41,7 @@ ;; 36: int32 *lookup _ConvertX86: +ConvertX86: push ebp mov ebp,esp @@ -81,6 +83,7 @@ ;; Hermes_X86_CPU returns the CPUID flags in eax _Hermes_X86_CPU: +Hermes_X86_CPU: pushfd pop eax --- SDL-1.2.8/src/hermes/x86p_16.asm.orig 2001-04-26 18:45:45.000000000 +0200 +++ SDL-1.2.8/src/hermes/x86p_16.asm 2005-05-05 22:42:58.000000000 +0200 @@ -23,6 +23,16 @@ GLOBAL _ConvertX86p16_16RGB555 GLOBAL _ConvertX86p16_16BGR555 GLOBAL _ConvertX86p16_8RGB332 +GLOBAL ConvertX86p16_32RGB888 +GLOBAL ConvertX86p16_32BGR888 +GLOBAL ConvertX86p16_32RGBA888 +GLOBAL ConvertX86p16_32BGRA888 +GLOBAL ConvertX86p16_24RGB888 +GLOBAL ConvertX86p16_24BGR888 +GLOBAL ConvertX86p16_16BGR565 +GLOBAL ConvertX86p16_16RGB555 +GLOBAL ConvertX86p16_16BGR555 +GLOBAL ConvertX86p16_8RGB332 EXTERN _ConvertX86 EXTERN _x86return @@ -33,6 +43,7 @@ _ConvertX86p16_16BGR565: +ConvertX86p16_16BGR565: ; check short cmp ecx,BYTE 16 @@ -143,6 +154,7 @@ _ConvertX86p16_16RGB555: +ConvertX86p16_16RGB555: ; check short cmp ecx,BYTE 32 @@ -251,6 +263,7 @@ _ConvertX86p16_16BGR555: +ConvertX86p16_16BGR555: ; check short cmp ecx,BYTE 16 @@ -369,6 +382,7 @@ _ConvertX86p16_8RGB332: +ConvertX86p16_8RGB332: ; check short cmp ecx,BYTE 16 --- SDL-1.2.8/src/hermes/x86p_32.asm.orig 2001-04-26 18:45:45.000000000 +0200 +++ SDL-1.2.8/src/hermes/x86p_32.asm 2005-05-05 22:44:07.000000000 +0200 @@ -22,6 +22,16 @@ GLOBAL _ConvertX86p32_16RGB555 GLOBAL _ConvertX86p32_16BGR555 GLOBAL _ConvertX86p32_8RGB332 +GLOBAL ConvertX86p32_32BGR888 +GLOBAL ConvertX86p32_32RGBA888 +GLOBAL ConvertX86p32_32BGRA888 +GLOBAL ConvertX86p32_24RGB888 +GLOBAL ConvertX86p32_24BGR888 +GLOBAL ConvertX86p32_16RGB565 +GLOBAL ConvertX86p32_16BGR565 +GLOBAL ConvertX86p32_16RGB555 +GLOBAL ConvertX86p32_16BGR555 +GLOBAL ConvertX86p32_8RGB332 EXTERN _x86return @@ -38,6 +48,7 @@ _ConvertX86p32_32BGR888: +ConvertX86p32_32BGR888: ; check short cmp ecx,BYTE 32 @@ -119,6 +130,7 @@ _ConvertX86p32_32RGBA888: +ConvertX86p32_32RGBA888: ; check short cmp ecx,BYTE 32 @@ -190,6 +202,7 @@ _ConvertX86p32_32BGRA888: +ConvertX86p32_32BGRA888: ; check short cmp ecx,BYTE 32 @@ -265,6 +278,7 @@ ;; 32 bit RGB 888 to 24 BIT RGB 888 _ConvertX86p32_24RGB888: +ConvertX86p32_24RGB888: ; check short cmp ecx,BYTE 32 @@ -362,6 +376,7 @@ ;; 32 bit RGB 888 to 24 bit BGR 888 _ConvertX86p32_24BGR888: +ConvertX86p32_24BGR888: ; check short cmp ecx,BYTE 32 @@ -463,6 +478,8 @@ ;; 32 bit RGB 888 to 16 BIT RGB 565 _ConvertX86p32_16RGB565: +ConvertX86p32_16RGB565: + ; check short cmp ecx,BYTE 16 ja .L3 @@ -578,6 +595,7 @@ ;; 32 bit RGB 888 to 16 BIT BGR 565 _ConvertX86p32_16BGR565: +ConvertX86p32_16BGR565: ; check short cmp ecx,BYTE 16 @@ -692,6 +710,7 @@ ;; 32 BIT RGB TO 16 BIT RGB 555 _ConvertX86p32_16RGB555: +ConvertX86p32_16RGB555: ; check short cmp ecx,BYTE 16 @@ -803,6 +822,7 @@ ;; 32 BIT RGB TO 16 BIT BGR 555 _ConvertX86p32_16BGR555: +ConvertX86p32_16BGR555: ; check short cmp ecx,BYTE 16 @@ -919,8 +939,9 @@ ;; FROM 32 BIT RGB to 8 BIT RGB (rrrgggbbb) ;; This routine writes FOUR pixels at once (dword) and then, if they exist ;; the trailing three pixels -_ConvertX86p32_8RGB332: +_ConvertX86p32_8RGB332: +ConvertX86p32_8RGB332: .L_ALIGNED push ecx