version 1.1 | | version 1.2 |
---|
| | |
* Graphical routines for drawing solid scanlines. | | * Graphical routines for drawing solid scanlines. |
* | | * |
* $Log$ | | * $Log$ |
* Revision 1.1 1999/06/14 21:57:10 donut | | * Revision 1.2 1999/08/23 18:09:44 donut |
* Initial revision | | * asm spillage fix commited for George Foot <george.foot@merton.oxford.ac.uk> |
| | * |
| | * Revision 1.1.1.1 1999/06/14 21:57:10 donut |
| | * Import of d1x 1.37 source. |
* | | * |
* Revision 1.7 1994/11/18 22:50:48 john | | * Revision 1.7 1994/11/18 22:50:48 john |
* Changed a bunch of shorts to ints in calls. | | * Changed a bunch of shorts to ints in calls. |
| | |
| | |
# elif defined __GNUC__ | | # elif defined __GNUC__ |
static inline void gr_linear_darken( ubyte * dest, int darkening_level, int count, ubyte * fade_table ) { | | static inline void gr_linear_darken( ubyte * dest, int darkening_level, int count, ubyte * fade_table ) { |
| | int dummy[4]; |
__asm__ __volatile__ ( | | __asm__ __volatile__ ( |
" xorl %%ebx, %%ebx;" | | " xorl %%ebx, %%ebx;" |
" movb %%al, %%bh;" | | " movb %%al, %%bh;" |
| | |
" incl %%edi;" | | " incl %%edi;" |
" decl %%ecx;" | | " decl %%ecx;" |
" jnz 0b" | | " jnz 0b" |
: : "D" (dest), "a" (darkening_level), "c" (count), "d" (fade_table) | | : "=D" (dummy[0]), "=a" (dummy[1]), "=c" (dummy[2]), "=d" (dummy[3]) |
: "%eax", "%ebx", "%ecx", "%edx", "%edi"); | | : "0" (dest), "1" (darkening_level), "2" (count), "3" (fade_table) |
| | : "%ebx"); |
} | | } |
# elif defined _MSC_VER | | # elif defined _MSC_VER |
__inline void gr_linear_darken( ubyte * dest, int darkening_level, int count, ubyte * fade_table ) | | __inline void gr_linear_darken( ubyte * dest, int darkening_level, int count, ubyte * fade_table ) |