Ticket #1566: dsputil_mmx.c.patch

File dsputil_mmx.c.patch, 1.4 KB (added by yang, 4 years ago)

patch file

  • dsputil_mmx.c

    old new  
    246246    pix = pixels; 
    247247    /* unrolled loop */ 
    248248    __asm__ volatile ( 
    249         "movq        %3, %%mm0          \n\t" 
    250         "movq       8%3, %%mm1          \n\t" 
    251         "movq      16%3, %%mm2          \n\t" 
    252         "movq      24%3, %%mm3          \n\t" 
    253         "movq      32%3, %%mm4          \n\t" 
    254         "movq      40%3, %%mm5          \n\t" 
    255         "movq      48%3, %%mm6          \n\t" 
    256         "movq      56%3, %%mm7          \n\t" 
     249        "movq        (%3), %%mm0          \n\t" 
     250        "movq       8(%3), %%mm1          \n\t" 
     251        "movq      16(%3), %%mm2          \n\t" 
     252        "movq      24(%3), %%mm3          \n\t" 
     253        "movq      32(%3), %%mm4          \n\t" 
     254        "movq      40(%3), %%mm5          \n\t" 
     255        "movq      48(%3), %%mm6          \n\t" 
     256        "movq      56(%3), %%mm7          \n\t" 
    257257        "packuswb %%mm1, %%mm0          \n\t" 
    258258        "packuswb %%mm3, %%mm2          \n\t" 
    259259        "packuswb %%mm5, %%mm4          \n\t" 
     
    263263        "movq     %%mm4, (%0, %1, 2)    \n\t" 
    264264        "movq     %%mm6, (%0, %2)       \n\t" 
    265265        :: "r"(pix), "r"((x86_reg)line_size), "r"((x86_reg)line_size * 3), 
    266            "m"(*p) 
     266           "r"(p) 
    267267        : "memory"); 
    268268    pix += line_size * 4; 
    269269    p   += 32;