]> granicus.if.org Git - libx264/commitdiff
Fix bug in hadamard_ac SSE assembly
authorLoren Merritt <pengvado@akuvian.org>
Thu, 30 Oct 2008 07:47:09 +0000 (00:47 -0700)
committerFiona Glaser <fiona@x264.com>
Thu, 30 Oct 2008 07:47:09 +0000 (00:47 -0700)
Some extreme inputs could cause overflows.

common/x86/pixel-a.asm

index 5c646581c60bbacb962d33ebb08a8060b95794b0..f1594be3a71dfe08b8d0e69050f67f242e87b071 100644 (file)
@@ -1463,12 +1463,13 @@ cglobal x264_pixel_hadamard_ac_%1x%2_%3, 2,3
     paddusw m1, [rsp+0x60]
     paddusw m0, [rsp+0x70]
     paddusw m1, [rsp+0x80]
+    psrlw m0, 1
 %endif
     HADDW m0, m2
     HADDW m1, m3
     movd edx, m0
     movd eax, m1
-    shr  edx, 2
+    shr  edx, 2 - (%1*%2 >> 8)
     shr  eax, 1
 %ifdef ARCH_X86_64
     shl  rdx, 32