vp9_intrapred_ssse3.asm revision 91037db265ecdd914a26e056cf69207b4f50924e
1; 2; Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3; 4; Use of this source code is governed by a BSD-style license 5; that can be found in the LICENSE file in the root of the source 6; tree. An additional intellectual property rights grant can be found 7; in the file PATENTS. All contributing project authors may 8; be found in the AUTHORS file in the root of the source tree. 9; 10 11%include "third_party/x86inc/x86inc.asm" 12 13SECTION .text 14 15INIT_MMX ssse3 16cglobal h_predictor_4x4, 2, 4, 3, dst, stride, line, left 17 movifnidn leftq, leftmp 18 add leftq, 4 19 mov lineq, -2 20 pxor m0, m0 21.loop: 22 movd m1, [leftq+lineq*2 ] 23 movd m2, [leftq+lineq*2+1] 24 pshufb m1, m0 25 pshufb m2, m0 26 movd [dstq ], m1 27 movd [dstq+strideq], m2 28 lea dstq, [dstq+strideq*2] 29 inc lineq 30 jnz .loop 31 REP_RET 32 33INIT_MMX ssse3 34cglobal h_predictor_8x8, 2, 4, 3, dst, stride, line, left 35 movifnidn leftq, leftmp 36 add leftq, 8 37 mov lineq, -4 38 pxor m0, m0 39.loop: 40 movd m1, [leftq+lineq*2 ] 41 movd m2, [leftq+lineq*2+1] 42 pshufb m1, m0 43 pshufb m2, m0 44 movq [dstq ], m1 45 movq [dstq+strideq], m2 46 lea dstq, [dstq+strideq*2] 47 inc lineq 48 jnz .loop 49 REP_RET 50 51INIT_XMM ssse3 52cglobal h_predictor_16x16, 2, 4, 3, dst, stride, line, left 53 movifnidn leftq, leftmp 54 add leftq, 16 55 mov lineq, -8 56 pxor m0, m0 57.loop: 58 movd m1, [leftq+lineq*2 ] 59 movd m2, [leftq+lineq*2+1] 60 pshufb m1, m0 61 pshufb m2, m0 62 mova [dstq ], m1 63 mova [dstq+strideq], m2 64 lea dstq, [dstq+strideq*2] 65 inc lineq 66 jnz .loop 67 REP_RET 68 69INIT_XMM ssse3 70cglobal h_predictor_32x32, 2, 4, 3, dst, stride, line, left 71 movifnidn leftq, leftmp 72 add leftq, 32 73 mov lineq, -16 74 pxor m0, m0 75.loop: 76 movd m1, [leftq+lineq*2 ] 77 movd m2, [leftq+lineq*2+1] 78 pshufb m1, m0 79 pshufb m2, m0 80 mova [dstq ], m1 81 mova [dstq +16], m1 82 mova [dstq+strideq ], m2 83 mova [dstq+strideq+16], m2 84 lea dstq, [dstq+strideq*2] 85 inc lineq 86 jnz .loop 87 REP_RET 88