1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavutil/x86
Martin Storsjö 7ec2354c38 x86: Remove inline MMX assembly that clobbers the FPU state
These inline implementations of AV_COPY64, AV_SWAP64 and AV_ZERO64
are known to clobber the FPU state - which has to be restored
with the 'emms' instruction afterwards.

This was known and signaled with the FF_COPY_SWAP_ZERO_USES_MMX
define, which calling code seems to have been supposed to check,
in order to call emms_c() after using them. See
0b1972d409,
29c4c0886d and
df215e5758 for history on earlier
fixes in the same area.

However, new code can use these AV_*64() macros without knowing
about the need to call emms_c().

Just get rid of these dangerous inline assembly snippets; this
doesn't make any difference for 64 bit architectures anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-02-09 23:55:52 +02:00
..
asm.h
bswap.h libavutil: x86: Include stdlib.h before using _byteswap_ulong 2020-01-23 18:30:26 +02:00
cpu.c avutil/cpu: add AVX512 Icelake flag 2022-03-10 16:45:48 -03:00
cpu.h avutil/cpu: add AVX512 Icelake flag 2022-03-10 16:45:48 -03:00
cpuid.asm libavutil: include assembly with full path from source root 2022-02-08 10:42:26 +01:00
emms.asm libavutil: include assembly with full path from source root 2022-02-08 10:42:26 +01:00
fixed_dsp_init.c lavu/fixed_dsp: add missing av_restrict qualifiers 2022-10-04 10:56:12 +02:00
fixed_dsp.asm libavutil: include assembly with full path from source root 2022-02-08 10:42:26 +01:00
float_dsp_init.c avutil/x86/float_dsp: add fma3 for scalarproduct 2022-09-13 17:43:15 +02:00
float_dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
imgutils_init.c Remove unnecessary libavutil/(avutil|common|internal).h inclusions 2022-02-24 12:56:49 +01:00
imgutils.asm
intmath.h x86/intmath: add VEX encoded versions of av_clipf() and av_clipd() 2021-11-19 11:21:03 -03:00
intreadwrite.h x86: Remove inline MMX assembly that clobbers the FPU state 2024-02-09 23:55:52 +02:00
lls_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
lls.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
Makefile x86/tx_float: do not build tx_float_init.c if x86 assembly is disabled 2022-01-27 02:17:46 +01:00
pixelutils_init.c avutil/x86/pixelutils: Remove obsolete MMX(EXT) functions 2022-06-22 13:36:44 +02:00
pixelutils.asm avutil/x86/pixelutils: Empty MMX state in ff_pixelutils_sad_8x8_mmxext 2023-11-04 01:26:03 +01:00
pixelutils.h
timer.h
tx_float_init.c x86/tx_init: propely indicate the extended available transform sizes 2024-02-09 18:08:42 +01:00
tx_float.asm x86/tx_float: enable SIMD for sizes over 131072 2024-02-07 15:20:48 +01:00
w64xmmtest.h
x86inc.asm x86inc: Add REPX macro to repeat instructions/operations 2023-11-08 13:49:08 +01:00
x86util.asm avutil/x86util : add macro for loading a 128 bits constants in an xmm or in each part of an ymm in order to simplify avx2 asm func 2017-12-02 18:25:15 +01:00