View | Details | Raw Unified
Collapse All | Expand All

(-) file_not_specified_in_diff (-24 / +41 lines)
 Lines 98-112    Link Here 
                           int height,
                           int height,
                           int line_offset)
                           int line_offset)
{
{
    long long rrggbbaa;
    union {
    long long pixel;
       long long rrggbbaa;
       struct {short int rr, gg, bb, aa;} words;
    } rrggbbaa;
    
    union {
       long long pixel;
       struct {short int rr, gg, bb, aa;} words;
    } pixel;
    short *tmp_err;
    short *tmp_err;
    short *tmp_nerr;
    short *tmp_nerr;
    int x;
    int x;
    asm volatile
    asm volatile
        (
        (
         "pushal                        \n\t"
         "pushl %%ebx                        \n\t"
         // pack dr, dg and db into mm6
         // pack dr, dg and db into mm6
         "movl  %7, %%eax               \n\t"
         "movl  %7, %%eax               \n\t"
 Lines 290-296    Link Here 
".Enda:                                 \n\t" // THE END
".Enda:                                 \n\t" // THE END
         "emms                          \n\t"
         "emms                          \n\t"
         "popal                         \n\t"
         "popl %%ebx                         \n\t"
         :
         :
         :
         :
         "m" (image),                      // %0
         "m" (image),                      // %0
 Lines 309-325    Link Here 
         "m" (width),                      // %13
         "m" (width),                      // %13
         "m" (height),                     // %14
         "m" (height),                     // %14
         "m" (line_offset),                // %15
         "m" (line_offset),                // %15
         "m" (rrggbbaa),                   // %16 (access to rr)
         "m" (rrggbbaa.rrggbbaa),          // %16 (access to rr)
         "m" ((*((short*)(&rrggbbaa)+1))), // %17 (access to gg)
         "m" (rrggbbaa.words.gg),          // %17 (access to gg)
         "m" ((*((short*)(&rrggbbaa)+2))), // %18 (access to bb)
         "m" (rrggbbaa.words.bb),          // %18 (access to bb)
         "m" ((*((short*)(&rrggbbaa)+3))), // %19 (access to aa)
         "m" (rrggbbaa.words.aa),          // %19 (access to aa)
         "m" (pixel),                      // %20 (access to pixel.r)
         "m" (pixel.pixel),                // %20 (access to pixel.r)
         "m" ((*((short*)(&pixel)+1))),    // %21 (access to pixel.g)
         "m" (pixel.words.gg),             // %21 (access to pixel.g)
         "m" ((*((short*)(&pixel)+2))),    // %22 (access to pixel.b)
         "m" (pixel.words.bb),             // %22 (access to pixel.b)
         "m" ((*((short*)(&pixel)+3))),    // %23 (access to pixel.a)
         "m" (pixel.words.aa),             // %23 (access to pixel.a)
         "m" (tmp_err),                    // %24
         "m" (tmp_err),                    // %24
         "m" (tmp_nerr),                   // %25
         "m" (tmp_nerr),                   // %25
         "m" (x)                           // %26
         "m" (x)                           // %26
        : "eax", "ecx", "edx", "esi", "edi"
        );
        );
}
}
 Lines 342-349    Link Here 
                           int height,
                           int height,
                           int line_offset)
                           int line_offset)
{
{
    long long rrggbbaa;
    union {
    long long pixel;
       long long rrggbbaa;
       struct {short int rr, gg, bb, aa;} words;
    } rrggbbaa;
    
    union {
       long long pixel;
       struct {short int rr, gg, bb, aa;} words;
    } pixel;
    short *tmp_err;
    short *tmp_err;
    short *tmp_nerr;
    short *tmp_nerr;
 Lines 354-360    Link Here 
    asm volatile
    asm volatile
        (
        (
         "pushal                        \n\t"
         "pushl %%ebx                        \n\t"
         "movl %13, %%eax               \n\t" // eax = width
         "movl %13, %%eax               \n\t" // eax = width
         "movl %%eax, %%ebx             \n\t"
         "movl %%eax, %%ebx             \n\t"
 Lines 424-430    Link Here 
".Endc:                                 \n\t" // THE END
".Endc:                                 \n\t" // THE END
         "emms                          \n\t"
         "emms                          \n\t"
         "popal                         \n\t"
         "popl %%ebx                         \n\t"
         :
         :
         :
         :
         "m" (image),                      // %0
         "m" (image),                      // %0
 Lines 443-461    Link Here 
         "m" (width),                      // %13
         "m" (width),                      // %13
         "m" (height),                     // %14
         "m" (height),                     // %14
         "m" (line_offset),                // %15
         "m" (line_offset),                // %15
         "m" (rrggbbaa),                   // %16 (access to rr)
         "m" (rrggbbaa.rrggbbaa),          // %16 (access to rr)
         "m" ((*((short*)(&rrggbbaa)+1))), // %17 (access to gg)
         "m" (rrggbbaa.words.gg),          // %17 (access to gg)
         "m" ((*((short*)(&rrggbbaa)+2))), // %18 (access to bb)
         "m" (rrggbbaa.words.bb),          // %18 (access to bb)
         "m" ((*((short*)(&rrggbbaa)+3))), // %19 (access to aa)
         "m" (rrggbbaa.words.aa),          // %19 (access to aa)
         "m" (pixel),                      // %20 (access to pixel.r)
         "m" (pixel.pixel),                // %20 (access to pixel.r)
         "m" ((*((short*)(&pixel)+1))),    // %21 (access to pixel.g)
         "m" (pixel.words.gg),             // %21 (access to pixel.g)
         "m" ((*((short*)(&pixel)+2))),    // %22 (access to pixel.b)
         "m" (pixel.words.bb),             // %22 (access to pixel.b)
         "m" ((*((short*)(&pixel)+3))),    // %23 (access to pixel.a)
         "m" (pixel.words.aa),             // %23 (access to pixel.a)
         "m" (tmp_err),                    // %24
         "m" (tmp_err),                    // %24
         "m" (tmp_nerr),                   // %25
         "m" (tmp_nerr),                   // %25
         "m" (x),                          // %26
         "m" (x),                          // %26
         "m" (w1),                         // %27
         "m" (w1),                         // %27
         "m" (w2)                          // %28
         "m" (w2)                          // %28
         : "eax", "ecx", "edx", "esi", "edi"
        );
        );
}
}