| version 1.2 | | version 1.3 |
|---|
| | |
| * on bitmaps. | | * on bitmaps. |
| * | | * |
| * $Log$ | | * $Log$ |
| | | * Revision 1.3 1999/11/18 11:40:39 donut |
| | | * more gcc 2.95 invalid asm clobber fixes |
| | | * |
| * Revision 1.2 1999/08/05 22:53:40 sekmu | | * Revision 1.2 1999/08/05 22:53:40 sekmu |
| * | | * |
| * D3D patch(es) from ADB | | * D3D patch(es) from ADB |
| | |
| #elif defined __GNUC__ | | #elif defined __GNUC__ |
| static inline int gr_rle_decode_asm( ubyte * src, ubyte * dest ) { | | static inline int gr_rle_decode_asm( ubyte * src, ubyte * dest ) { |
| register int __ret; | | register int __ret; |
| | | int dummy; |
| __asm__ __volatile__ ( | | __asm__ __volatile__ ( |
| " cld;" | | " cld;" |
| " xorl %%ecx, %%ecx;" | | " xorl %%ecx, %%ecx;" |
| | |
| " incl %%edi;" | | " incl %%edi;" |
| " jmp 1b;" | | " jmp 1b;" |
| "2:" | | "2:" |
| : "=D" (__ret) : "S" (src), "D" (dest) : "%eax", "%ecx", "%esi"); | | : "=D" (__ret), "=S" (dummy) : "1" (src), "D" (dest) : "%eax", "%ecx"); |
| return __ret; | | return __ret; |
| } | | } |
| | | |
| static inline void rle_stosb(char *dest, int len, int color) { | | static inline void rle_stosb(char *dest, int len, int color) { |
| | | int dummy[1]; |
| __asm__ __volatile__ ( | | __asm__ __volatile__ ( |
| "cld; rep; stosb" | | "cld; rep; stosb" |
| : : "D" (dest), "c" (len), "a" (color) : "%ecx", "%edi"); | | : "=D" (dummy[0]), "=c" (dummy[1]) |
| | | : "0" (dest), "1" (len), "a" (color) ); |
| } | | } |
| #elif defined _MSC_VER | | #elif defined _MSC_VER |
| __inline int gr_rle_decode_asm( ubyte * src, ubyte * dest ) | | __inline int gr_rle_decode_asm( ubyte * src, ubyte * dest ) |