Ticket #1566: dsputil_mmx.c.patch

File dsputil_mmx.c.patch, 1.4 KB (added by yang, 14 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;