fixed the reading too many bytes

In subpel_avg_variance functions, code similar to the following

punpkldq m2, [addr]

actually reads 8 bytes. For functions that are supposed to work on
buffers only have less 8 bytes a line, this caused valgrind error
of reading uninitialized memory.

Change-Id: I2a4c079dbdbc747829bd9e2ed85f0018ad2a3a34
This commit is contained in:
Yaowu Xu 2013-08-27 08:39:20 -07:00
parent 4505e8accb
commit 9482c07953

View File

@ -270,7 +270,12 @@ cglobal sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, x_offset, y_offset, \
%if mmsize == 16
movhps m2, [srcq+src_strideq*2]
%else ; mmsize == 8
%if %1 == 4
movh m1, [srcq+src_strideq*2]
punpckldq m2, m1
%else
punpckldq m2, [srcq+src_strideq*2]
%endif
%endif
movh m1, [dstq]
%if mmsize == 16
@ -541,9 +546,16 @@ cglobal sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, x_offset, y_offset, \
%if mmsize == 16
movhps m2, [srcq+src_strideq]
movhps m3, [srcq+src_strideq+1]
%else
%if %1 == 4
movh m1, [srcq+src_strideq]
punpckldq m2, m1
movh m1, [srcq+src_strideq+1]
punpckldq m3, m1
%else
punpckldq m2, [srcq+src_strideq]
punpckldq m3, [srcq+src_strideq+1]
%endif
%endif
pavgb m2, m3
%if mmsize == 16