Difference for 2d/scalea.h from version 1.1 to 1.2


version 1.1 version 1.2
Line 55
 
Line 55
   
 #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;"
Line 70
 
Line 72
 "             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 ) {

Legend:
line(s) removed in v.1.1 
line(s) changed
 line(s) added in v.1.2