* qatar/master: x86: dsputil: Drop some unused macro definitions x86: Add a Yasm-based emms() replacement Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.2
| @@ -197,14 +197,12 @@ DECLARE_ALIGNED(16, const double, ff_pd_2)[2] = { 2.0, 2.0 }; | |||||
| #define DEF(x) x ## _3dnow | #define DEF(x) x ## _3dnow | ||||
| #define PAVGB "pavgusb" | #define PAVGB "pavgusb" | ||||
| #define OP_AVG PAVGB | |||||
| #define SKIP_FOR_3DNOW | #define SKIP_FOR_3DNOW | ||||
| #include "dsputil_avg_template.c" | #include "dsputil_avg_template.c" | ||||
| #undef DEF | #undef DEF | ||||
| #undef PAVGB | #undef PAVGB | ||||
| #undef OP_AVG | |||||
| #undef SKIP_FOR_3DNOW | #undef SKIP_FOR_3DNOW | ||||
| /***********************************/ | /***********************************/ | ||||
| @@ -214,13 +212,11 @@ DECLARE_ALIGNED(16, const double, ff_pd_2)[2] = { 2.0, 2.0 }; | |||||
| /* Introduced only in MMXEXT set */ | /* Introduced only in MMXEXT set */ | ||||
| #define PAVGB "pavgb" | #define PAVGB "pavgb" | ||||
| #define OP_AVG PAVGB | |||||
| #include "dsputil_avg_template.c" | #include "dsputil_avg_template.c" | ||||
| #undef DEF | #undef DEF | ||||
| #undef PAVGB | #undef PAVGB | ||||
| #undef OP_AVG | |||||
| #define put_no_rnd_pixels16_mmx put_pixels16_mmx | #define put_no_rnd_pixels16_mmx put_pixels16_mmx | ||||
| #define put_no_rnd_pixels8_mmx put_pixels8_mmx | #define put_no_rnd_pixels8_mmx put_pixels8_mmx | ||||
| @@ -142,6 +142,9 @@ static av_always_inline void emms_c(void) | |||||
| #elif HAVE_MMX && HAVE_MM_EMPTY | #elif HAVE_MMX && HAVE_MM_EMPTY | ||||
| # include <mmintrin.h> | # include <mmintrin.h> | ||||
| # define emms_c _mm_empty | # define emms_c _mm_empty | ||||
| #elif HAVE_MMX && HAVE_YASM | |||||
| # include "libavutil/x86/emms.h" | |||||
| # define emms_c avpriv_emms_yasm | |||||
| #else | #else | ||||
| # define emms_c() | # define emms_c() | ||||
| #endif /* HAVE_MMX_INLINE */ | #endif /* HAVE_MMX_INLINE */ | ||||
| @@ -2,4 +2,5 @@ OBJS += x86/cpu.o \ | |||||
| x86/float_dsp_init.o \ | x86/float_dsp_init.o \ | ||||
| YASM-OBJS += x86/cpuid.o \ | YASM-OBJS += x86/cpuid.o \ | ||||
| x86/emms.o \ | |||||
| x86/float_dsp.o \ | x86/float_dsp.o \ | ||||
| @@ -0,0 +1,30 @@ | |||||
| ;***************************************************************************** | |||||
| ;* Copyright (C) 2013 Martin Storsjo | |||||
| ;* | |||||
| ;* 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 "x86util.asm" | |||||
| SECTION .text | |||||
| ;----------------------------------------------------------------------------- | |||||
| ; void avpriv_emms_yasm(void) | |||||
| ;----------------------------------------------------------------------------- | |||||
| cvisible emms_yasm, 0, 0 | |||||
| emms | |||||
| RET | |||||
| @@ -0,0 +1,24 @@ | |||||
| /* | |||||
| * 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 | |||||
| */ | |||||
| #ifndef AVUTIL_X86_EMMS_H | |||||
| #define AVUTIL_X86_EMMS_H | |||||
| void avpriv_emms_yasm(void); | |||||
| #endif /* AVUTIL_X86_EMMS_H */ | |||||