diff options
Diffstat (limited to 'vp9/encoder/x86/vp9_quantize_ssse3.asm')
-rw-r--r-- | vp9/encoder/x86/vp9_quantize_ssse3.asm | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/vp9/encoder/x86/vp9_quantize_ssse3.asm b/vp9/encoder/x86/vp9_quantize_ssse3.asm index 7deb9815a..ae0d6cd3c 100644 --- a/vp9/encoder/x86/vp9_quantize_ssse3.asm +++ b/vp9/encoder/x86/vp9_quantize_ssse3.asm @@ -70,9 +70,15 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \ pcmpgtw m7, m6, m0 ; m7 = c[i] >= zbin punpckhqdq m0, m0 pcmpgtw m12, m11, m0 ; m12 = c[i] >= zbin +%ifidn %1, b_32x32 + paddsw m6, m1 + punpckhqdq m1, m1 + paddsw m11, m1 +%else paddw m6, m1 ; m6 += round punpckhqdq m1, m1 paddw m11, m1 ; m11 += round +%endif pmulhw m8, m6, m2 ; m8 = m6*q>>16 punpckhqdq m2, m2 pmulhw m13, m11, m2 ; m13 = m11*q>>16 @@ -126,9 +132,12 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \ pmovmskb r2, m12 or r6, r2 jz .skip_iter -%endif + paddsw m6, m1 + paddsw m11, m1 +%else paddw m6, m1 ; m6 += round paddw m11, m1 ; m11 += round +%endif pmulhw m14, m6, m2 ; m14 = m6*q>>16 pmulhw m13, m11, m2 ; m13 = m11*q>>16 paddw m14, m6 ; m14 += m6 |