Revision 73b02e24

View differences:

libavcodec/x86/dsputil_mmx.c
528 528
    );
529 529
}
530 530

  
531
static void clear_blocks_sse(DCTELEM *blocks)
532
{\
533
    __asm__ volatile(
534
        "xorps  %%xmm0, %%xmm0  \n"
535
        "mov     %1, %%"REG_a"  \n"
536
        "1:                     \n"
537
        "movaps %%xmm0,    (%0, %%"REG_a") \n"
538
        "movaps %%xmm0,  16(%0, %%"REG_a") \n"
539
        "movaps %%xmm0,  32(%0, %%"REG_a") \n"
540
        "movaps %%xmm0,  48(%0, %%"REG_a") \n"
541
        "movaps %%xmm0,  64(%0, %%"REG_a") \n"
542
        "movaps %%xmm0,  80(%0, %%"REG_a") \n"
543
        "movaps %%xmm0,  96(%0, %%"REG_a") \n"
544
        "movaps %%xmm0, 112(%0, %%"REG_a") \n"
545
        "add $128, %%"REG_a"    \n"
546
        " js 1b                 \n"
547
        : : "r" (((uint8_t *)blocks)+128*6),
548
            "i" (-128*6)
549
        : "%"REG_a
550
    );
551
}
552

  
531 553
static void add_bytes_mmx(uint8_t *dst, uint8_t *src, int w){
532 554
    x86_reg i=0;
533 555
    __asm__ volatile(
......
2671 2693
        c->add_pixels_clamped = add_pixels_clamped_mmx;
2672 2694
        c->clear_block  = clear_block_mmx;
2673 2695
        c->clear_blocks = clear_blocks_mmx;
2674
        if (mm_flags & FF_MM_SSE)
2675
            c->clear_block = clear_block_sse;
2696
        if (mm_flags & FF_MM_SSE){
2697
            c->clear_block  = clear_block_sse;
2698
            c->clear_blocks = clear_blocks_sse;
2699
        }
2676 2700

  
2677 2701
#define SET_HPEL_FUNCS(PFX, IDX, SIZE, CPU) \
2678 2702
        c->PFX ## _pixels_tab[IDX][0] = PFX ## _pixels ## SIZE ## _ ## CPU; \

Also available in: Unified diff