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 ) |