| version 1.1 | | version 1.2 |
|---|
| | |
| | | |
| #else | | #else |
| static inline void rep_stosb(char *ScreenPtr, int RunLength, int Color) { | | static inline void rep_stosb(char *ScreenPtr, int RunLength, int Color) { |
| | | int dummy[2]; |
| __asm__ __volatile__ ("cld; rep; stosb" | | __asm__ __volatile__ ("cld; rep; stosb" |
| : : "D" (ScreenPtr), "c" (RunLength), "a" (Color) : "%ecx", "%edi"); | | : "=c" (dummy[0]), "=D" (dummy[1]) : "1" (ScreenPtr), "0" (RunLength), "a" (Color) ); |
| } | | } |
| static inline void scale_row_asm_transparent( ubyte * sbits, ubyte * dbits, int width, fix u, fix du ) { | | static inline void scale_row_asm_transparent( ubyte * sbits, ubyte * dbits, int width, fix u, fix du ) { |
| | | int dummy[3]; |
| __asm__ __volatile__ ( | | __asm__ __volatile__ ( |
| "0: movl %%ebx, %%eax;" | | "0: movl %%ebx, %%eax;" |
| " shrl $16, %%eax;" | | " shrl $16, %%eax;" |
| | |
| " incl %%edi;" | | " incl %%edi;" |
| " decl %%ecx;" | | " decl %%ecx;" |
| " jne 0b" | | " jne 0b" |
| : : "S" (sbits), "D" (dbits), "c" (width), "b" (u), "d" (du) | | : "=c" (dummy[0]), "=b" (dummy[1]), "=D" (dummy[2]) |
| : "%eax", "%ebx", "%ecx", "%edi"); | | : "S" (sbits), "2" (dbits), "0" (width), "1" (u), "d" (du) |
| | | : "%eax"); |
| } | | } |
| | | |
| static inline void scale_row_asm( ubyte * sbits, ubyte * dbits, int width, fix u, fix du ) { | | static inline void scale_row_asm( ubyte * sbits, ubyte * dbits, int width, fix u, fix du ) { |