diff --git a/libswscale/x86/scale.asm b/libswscale/x86/scale.asm index 3bdf71b542..1f5e1dbf4c 100644 --- a/libswscale/x86/scale.asm +++ b/libswscale/x86/scale.asm @@ -649,7 +649,7 @@ cglobal yuv2planeX_%2_%1, %4, 7, %3 %define PALIGNR PALIGNR_MMX %ifdef ARCH_X86_32 INIT_MMX -yuv2planeX_fn mmx, 8, 0, 7 +yuv2planeX_fn mmx2, 8, 0, 7 yuv2planeX_fn mmx2, 9, 0, 5 yuv2planeX_fn mmx2, 10, 0, 5 %endif diff --git a/libswscale/x86/swscale_mmx.c b/libswscale/x86/swscale_mmx.c index 15511c6b13..56a1dd2f37 100644 --- a/libswscale/x86/swscale_mmx.c +++ b/libswscale/x86/swscale_mmx.c @@ -221,7 +221,7 @@ extern void ff_yuv2planeX_ ## size ## _ ## opt(const int16_t *filter, int filter VSCALEX_FUNC(10, opt2) #if ARCH_X86_32 -VSCALEX_FUNCS(mmx, mmx2); +VSCALEX_FUNCS(mmx2, mmx2); #endif VSCALEX_FUNCS(sse2, sse2); VSCALEX_FUNCS(sse4, sse4); @@ -295,9 +295,11 @@ switch(c->dstBpc){ \ if (cpu_flags & AV_CPU_FLAG_MMX) { ASSIGN_MMX_SCALE_FUNC(c->hyScale, c->hLumFilterSize, mmx, mmx); ASSIGN_MMX_SCALE_FUNC(c->hcScale, c->hChrFilterSize, mmx, mmx); - ASSIGN_VSCALEX_FUNC(c->yuv2planeX, mmx, mmx2, cpu_flags & AV_CPU_FLAG_MMX2,); ASSIGN_VSCALE_FUNC(c->yuv2plane1, mmx, mmx2, cpu_flags & AV_CPU_FLAG_MMX2); } + if (cpu_flags & AV_CPU_FLAG_MMX2) { + ASSIGN_VSCALEX_FUNC(c->yuv2planeX, mmx2, mmx2, cpu_flags & AV_CPU_FLAG_MMX2,); + } #endif #define ASSIGN_SSE_SCALE_FUNC(hscalefn, filtersize, opt1, opt2) \ switch (filtersize) { \