diff --git a/libswscale/x86/output.asm b/libswscale/x86/output.asm
index 6017bf13e0ee9900a11d9c39f6ab545f5a794c18..c4daa8230c6f99934c06cb6ac7b394796e9d0724 100644
--- a/libswscale/x86/output.asm
+++ b/libswscale/x86/output.asm
@@ -59,7 +59,7 @@ SECTION .text
 %macro yuv2planeX_fn 3
 
 %if ARCH_X86_32
-%define cntr_reg filterq
+%define cntr_reg fltsizeq
 %define movsx mov
 %else
 %define cntr_reg r11
@@ -146,7 +146,7 @@ cglobal yuv2planeX_%1, %3, 7, %2, filter, fltsize, src, dst, w, dither, offset
     mova            m1, [yuv2yuvX_%1_start]
     mova            m2,  m1
 %endif ; %1 == 8/9/10/16
-    movsx     cntr_reg,  fltsizem
+    movsx     cntr_reg,  r1m ; FIXME should be fltsizem, but the assembler does the wrong thing b/c of SUB above
 .filterloop_ %+ %%i:
     ; input pixels
     mov             r6, [srcq+gprsize*cntr_reg-2*gprsize]