From 3a6670fcf856ff6b4c59a151c35c98ba7cc7dc76 Mon Sep 17 00:00:00 2001 From: Yunqing Wang Date: Wed, 9 Apr 2014 09:59:15 -0700 Subject: [PATCH] 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 --- vp9/common/x86/vp9_copy_sse2.asm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/vp9/common/x86/vp9_copy_sse2.asm b/vp9/common/x86/vp9_copy_sse2.asm index dd522c6..b263837 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 -- 2.7.4