diff options
-rw-r--r-- | vpx_dsp/x86/intrapred_ssse3.asm | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/vpx_dsp/x86/intrapred_ssse3.asm b/vpx_dsp/x86/intrapred_ssse3.asm index 9010c74cb..88df9b2d1 100644 --- a/vpx_dsp/x86/intrapred_ssse3.asm +++ b/vpx_dsp/x86/intrapred_ssse3.asm @@ -33,20 +33,23 @@ sh_b2333: db 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 SECTION .text -INIT_XMM ssse3 +INIT_MMX ssse3 cglobal h_predictor_4x4, 2, 4, 3, dst, stride, line, left - movd m0, [leftq] - punpcklbw m0, m0 - punpcklbw m0, m0 - movd [dstq ], m0 - psrldq m0, 4 - movd [dstq+strideq], m0 + movifnidn leftq, leftmp + add leftq, 4 + mov lineq, -2 + pxor m0, m0 +.loop: + movd m1, [leftq+lineq*2 ] + movd m2, [leftq+lineq*2+1] + pshufb m1, m0 + pshufb m2, m0 + movd [dstq ], m1 + movd [dstq+strideq], m2 lea dstq, [dstq+strideq*2] - psrldq m0, 4 - movd [dstq ], m0 - psrldq m0, 4 - movd [dstq+strideq], m0 - RET + inc lineq + jnz .loop + REP_RET INIT_MMX ssse3 cglobal h_predictor_8x8, 2, 4, 3, dst, stride, line, left |