diff options
author | Yunqing Wang <yunqingwang@google.com> | 2014-04-09 09:59:15 -0700 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2014-04-09 09:59:15 -0700 |
commit | 3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76 (patch) | |
tree | e3a2bda6f7a530e0640b917fff27819b3d8148c8 /vp9/common/x86 | |
parent | 0cca5dd8d7bbeb001544d81ccf2112d9f52e7f87 (diff) | |
download | libvpx-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.asm | 12 |
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 |