diff options
| author | Tim Redfern <tim@eclectronics.org> | 2014-02-17 13:36:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2014-02-17 13:36:38 +0000 |
| commit | 22e28216336da876e1fd17f380ce42eaf1446769 (patch) | |
| tree | 444dad3dc7e2656992d29f34f7bce31970c122a5 /ffmpeg/libswresample/x86/rematrix.asm | |
| parent | ae5e8541f6e06e64c28719467cdf366ac57aff31 (diff) | |
chasing indexing error
Diffstat (limited to 'ffmpeg/libswresample/x86/rematrix.asm')
| -rw-r--r-- | ffmpeg/libswresample/x86/rematrix.asm | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/ffmpeg/libswresample/x86/rematrix.asm b/ffmpeg/libswresample/x86/rematrix.asm deleted file mode 100644 index f0ae959..0000000 --- a/ffmpeg/libswresample/x86/rematrix.asm +++ /dev/null @@ -1,250 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2012 Michael Niedermayer -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg is free software; you can redistribute it and/or -;* modify it under the terms of the GNU Lesser General Public -;* License as published by the Free Software Foundation; either -;* version 2.1 of the License, or (at your option) any later version. -;* -;* FFmpeg is distributed in the hope that it will be useful, -;* but WITHOUT ANY WARRANTY; without even the implied warranty of -;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;* Lesser General Public License for more details. -;* -;* You should have received a copy of the GNU Lesser General Public -;* License along with FFmpeg; if not, write to the Free Software -;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - - -SECTION_RODATA 32 -dw1: times 8 dd 1 -w1 : times 16 dw 1 - -SECTION .text - -%macro MIX2_FLT 1 -cglobal mix_2_1_%1_float, 7, 7, 6, out, in1, in2, coeffp, index1, index2, len -%ifidn %1, a - test in1q, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX - test in2q, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX -%else -mix_2_1_float_u_int %+ SUFFIX -%endif - VBROADCASTSS m4, [coeffpq + 4*index1q] - VBROADCASTSS m5, [coeffpq + 4*index2q] - shl lend , 2 - add in1q , lenq - add in2q , lenq - add outq , lenq - neg lenq -.next: -%ifidn %1, a - mulps m0, m4, [in1q + lenq ] - mulps m1, m5, [in2q + lenq ] - mulps m2, m4, [in1q + lenq + mmsize] - mulps m3, m5, [in2q + lenq + mmsize] -%else - movu m0, [in1q + lenq ] - movu m1, [in2q + lenq ] - movu m2, [in1q + lenq + mmsize] - movu m3, [in2q + lenq + mmsize] - mulps m0, m0, m4 - mulps m1, m1, m5 - mulps m2, m2, m4 - mulps m3, m3, m5 -%endif - addps m0, m0, m1 - addps m2, m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next - REP_RET -%endmacro - -%macro MIX1_FLT 1 -cglobal mix_1_1_%1_float, 5, 5, 3, out, in, coeffp, index, len -%ifidn %1, a - test inq, mmsize-1 - jne mix_1_1_float_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_1_1_float_u_int %+ SUFFIX -%else -mix_1_1_float_u_int %+ SUFFIX -%endif - VBROADCASTSS m2, [coeffpq + 4*indexq] - shl lenq , 2 - add inq , lenq - add outq , lenq - neg lenq -.next: -%ifidn %1, a - mulps m0, m2, [inq + lenq ] - mulps m1, m2, [inq + lenq + mmsize] -%else - movu m0, [inq + lenq ] - movu m1, [inq + lenq + mmsize] - mulps m0, m0, m2 - mulps m1, m1, m2 -%endif - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m1 - add lenq, mmsize*2 - jl .next - REP_RET -%endmacro - -%macro MIX1_INT16 1 -cglobal mix_1_1_%1_int16, 5, 5, 6, out, in, coeffp, index, len -%ifidn %1, a - test inq, mmsize-1 - jne mix_1_1_int16_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_1_1_int16_u_int %+ SUFFIX -%else -mix_1_1_int16_u_int %+ SUFFIX -%endif - movd m4, [coeffpq + 4*indexq] - SPLATW m5, m4 - psllq m4, 32 - psrlq m4, 48 - mova m0, [w1] - psllw m0, m4 - psrlw m0, 1 - punpcklwd m5, m0 - add lenq , lenq - add inq , lenq - add outq , lenq - neg lenq -.next: - mov%1 m0, [inq + lenq ] - mov%1 m2, [inq + lenq + mmsize] - mova m1, m0 - mova m3, m2 - punpcklwd m0, [w1] - punpckhwd m1, [w1] - punpcklwd m2, [w1] - punpckhwd m3, [w1] - pmaddwd m0, m5 - pmaddwd m1, m5 - pmaddwd m2, m5 - pmaddwd m3, m5 - psrad m0, m4 - psrad m1, m4 - psrad m2, m4 - psrad m3, m4 - packssdw m0, m1 - packssdw m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -%macro MIX2_INT16 1 -cglobal mix_2_1_%1_int16, 7, 7, 8, out, in1, in2, coeffp, index1, index2, len -%ifidn %1, a - test in1q, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX - test in2q, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX -%else -mix_2_1_int16_u_int %+ SUFFIX -%endif - movd m4, [coeffpq + 4*index1q] - movd m6, [coeffpq + 4*index2q] - SPLATW m5, m4 - SPLATW m6, m6 - psllq m4, 32 - psrlq m4, 48 - mova m7, [dw1] - pslld m7, m4 - psrld m7, 1 - punpcklwd m5, m6 - add lend , lend - add in1q , lenq - add in2q , lenq - add outq , lenq - neg lenq -.next: - mov%1 m0, [in1q + lenq ] - mov%1 m2, [in2q + lenq ] - mova m1, m0 - punpcklwd m0, m2 - punpckhwd m1, m2 - - mov%1 m2, [in1q + lenq + mmsize] - mov%1 m6, [in2q + lenq + mmsize] - mova m3, m2 - punpcklwd m2, m6 - punpckhwd m3, m6 - - pmaddwd m0, m5 - pmaddwd m1, m5 - pmaddwd m2, m5 - pmaddwd m3, m5 - paddd m0, m7 - paddd m1, m7 - paddd m2, m7 - paddd m3, m7 - psrad m0, m4 - psrad m1, m4 - psrad m2, m4 - psrad m3, m4 - packssdw m0, m1 - packssdw m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - - -INIT_MMX mmx -MIX1_INT16 u -MIX1_INT16 a -MIX2_INT16 u -MIX2_INT16 a - -INIT_XMM sse -MIX2_FLT u -MIX2_FLT a -MIX1_FLT u -MIX1_FLT a - -INIT_XMM sse2 -MIX1_INT16 u -MIX1_INT16 a -MIX2_INT16 u -MIX2_INT16 a - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -MIX2_FLT u -MIX2_FLT a -MIX1_FLT u -MIX1_FLT a -%endif |
