summaryrefslogtreecommitdiff
path: root/vp9/common/x86
diff options
context:
space:
mode:
authorYunqing Wang <yunqingwang@google.com>2014-04-09 09:59:15 -0700
committerYunqing Wang <yunqingwang@google.com>2014-04-09 09:59:15 -0700
commit3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76 (patch)
treee3a2bda6f7a530e0640b917fff27819b3d8148c8 /vp9/common/x86
parent0cca5dd8d7bbeb001544d81ccf2112d9f52e7f87 (diff)
downloadlibvpx-3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76.tar
libvpx-3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76.tar.gz
libvpx-3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76.tar.bz2
libvpx-3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76.zip
Fix encoder uninitialized read errors reported by drmemory
This patch fixed the uninitialized read errors in Issue 748: "dr memory VP9 encode errors". In vp9_convolve_avg_sse2, when width is 4, pavgb reads 8 bytes from dst buffer that is out of range. An error is reported although the data is not actually used later. This issue was resolved by preventing uninitialized reads. Change-Id: I109a54910aa47139cb13119de86f2062cff207df
Diffstat (limited to 'vp9/common/x86')
-rw-r--r--vp9/common/x86/vp9_copy_sse2.asm12
1 files changed, 8 insertions, 4 deletions
diff --git a/vp9/common/x86/vp9_copy_sse2.asm b/vp9/common/x86/vp9_copy_sse2.asm
index dd522c698..b26383708 100644
--- a/vp9/common/x86/vp9_copy_sse2.asm
+++ b/vp9/common/x86/vp9_copy_sse2.asm
@@ -133,10 +133,14 @@ INIT_MMX sse
movh m3, [srcq+r5q]
lea srcq, [srcq+src_strideq*4]
%ifidn %1, avg
- pavgb m0, [dstq]
- pavgb m1, [dstq+dst_strideq]
- pavgb m2, [dstq+dst_strideq*2]
- pavgb m3, [dstq+r6q]
+ movh m4, [dstq]
+ movh m5, [dstq+dst_strideq]
+ movh m6, [dstq+dst_strideq*2]
+ movh m7, [dstq+r6q]
+ pavgb m0, m4
+ pavgb m1, m5
+ pavgb m2, m6
+ pavgb m3, m7
%endif
movh [dstq ], m0
movh [dstq+dst_strideq ], m1