swscale: fix crashes in yuv2yuvX on x86-32.
authorRonald S. Bultje <rsbultje@gmail.com>
Mon, 13 Feb 2012 21:28:50 +0000 (13:28 -0800)
committerRonald S. Bultje <rsbultje@gmail.com>
Mon, 13 Feb 2012 21:41:13 +0000 (13:41 -0800)
They were introduced in an earlier commit that introduced use of named
arguments. One cause was a typo, a second cause appears to be a bug in
x264asm that I work around by not using named arguments.

libswscale/x86/output.asm

index 6017bf13e0ee9900a11d9c39f6ab545f5a794c18..c4daa8230c6f99934c06cb6ac7b394796e9d0724 100644 (file)
@@ -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]