diff options
Diffstat (limited to 'libavresample/x86/audio_mix.asm')
-rw-r--r-- | libavresample/x86/audio_mix.asm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libavresample/x86/audio_mix.asm b/libavresample/x86/audio_mix.asm index 2c657b5..64ab039 100644 --- a/libavresample/x86/audio_mix.asm +++ b/libavresample/x86/audio_mix.asm @@ -2,20 +2,20 @@ ;* x86 optimized channel mixing ;* Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com> ;* -;* This file is part of Libav. +;* This file is part of FFmpeg. ;* -;* Libav is free software; you can redistribute it and/or +;* 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. ;* -;* Libav is distributed in the hope that it will be useful, +;* 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 Libav; if not, write to the Free Software +;* License along with FFmpeg; if not, write to the Free Software ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;****************************************************************************** @@ -55,8 +55,10 @@ cglobal mix_2_to_1_fltp_flt, 3,4,6, src, matrix, len, src1 INIT_XMM sse MIX_2_TO_1_FLTP_FLT +%if HAVE_AVX_EXTERNAL INIT_YMM avx MIX_2_TO_1_FLTP_FLT +%endif ;----------------------------------------------------------------------------- ; void ff_mix_2_to_1_s16p_flt(int16_t **src, float **matrix, int len, @@ -172,8 +174,10 @@ cglobal mix_1_to_2_fltp_flt, 3,5,4, src0, matrix0, len, src1, matrix1 INIT_XMM sse MIX_1_TO_2_FLTP_FLT +%if HAVE_AVX_EXTERNAL INIT_YMM avx MIX_1_TO_2_FLTP_FLT +%endif ;----------------------------------------------------------------------------- ; void ff_mix_1_to_2_s16p_flt(int16_t **src, float **matrix, int len, @@ -217,8 +221,10 @@ INIT_XMM sse2 MIX_1_TO_2_S16P_FLT INIT_XMM sse4 MIX_1_TO_2_S16P_FLT +%if HAVE_AVX_EXTERNAL INIT_XMM avx MIX_1_TO_2_S16P_FLT +%endif ;----------------------------------------------------------------------------- ; void ff_mix_3_8_to_1_2_fltp/s16p_flt(float/int16_t **src, float **matrix, @@ -474,6 +480,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, n MIX_3_8_TO_1_2_FLT %%i, 1, s16p MIX_3_8_TO_1_2_FLT %%i, 2, s16p ; do not use ymm AVX or FMA4 in x86-32 for 6 or more channels due to stack alignment issues + %if HAVE_AVX_EXTERNAL %if ARCH_X86_64 || %%i < 6 INIT_YMM avx %else @@ -484,6 +491,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, n INIT_XMM avx MIX_3_8_TO_1_2_FLT %%i, 1, s16p MIX_3_8_TO_1_2_FLT %%i, 2, s16p + %endif %if HAVE_FMA4_EXTERNAL %if ARCH_X86_64 || %%i < 6 INIT_YMM fma4 |