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