summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vpx_dsp/x86/intrapred_ssse3.asm27
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