Fix overflow in temporal_filter_apply_sse2().
authorRonald S. Bultje <rbultje@google.com>
Thu, 21 Apr 2011 20:35:02 +0000 (16:35 -0400)
committerRonald S. Bultje <rbultje@google.com>
Fri, 22 Apr 2011 14:00:38 +0000 (10:00 -0400)
The accumulator array is an integer array, so use paddd instead of paddw
to add values to it. Fixes overflows when using large --arnr-maxframes
(>8) values.

Change-Id: Iad83794caa02400a65f3ab5760f2517e082d66ae

vp8/encoder/x86/temporal_filter_apply_sse2.asm

index 30674c8..b777ef5 100644 (file)
@@ -164,10 +164,10 @@ temporal_filter_apply_load_finished:
         movdqa      xmm6,           [rdi+32]
         movdqa      xmm7,           [rdi+48]
         ; += modifier
-        paddw       xmm4,           xmm0
-        paddw       xmm5,           xmm2
-        paddw       xmm6,           xmm1
-        paddw       xmm7,           xmm3
+        paddd       xmm4,           xmm0
+        paddd       xmm5,           xmm2
+        paddd       xmm6,           xmm1
+        paddd       xmm7,           xmm3
         ; write back
         movdqa      [rdi],          xmm4
         movdqa      [rdi+16],       xmm5