OSDN Git Service

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 6017bf1..c4daa82 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]