1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
FFmpeg/libavcodec/x86
Janne Grunau 8563f98871 x86: use emms after ff_int32_to_float_fmul_scalar_sse
Intel's Instruction Set Reference (as of September 2015) clearly states
that cvtpi2ps switches to MMX state. Actual CPUs do not switch if the
source is a memory location. The Instruction Set Reference from 1999
(Order Number 243191) describes this behaviour but all later versions
I've seen have make no distinction whether MMX registers or memory is
used as source.
The documentation for the matching SSE2 instruction to convert to double
(cvtpi2pd) was fixed (see the valgrind bug
https://bugs.kde.org/show_bug.cgi?id=210264).

It will take time to get a clarification and fixes in place. In the
meantime it makes sense to change ff_int32_to_float_fmul_scalar_sse to
be correct according to the documentation. The vast majority of users
will have SSE2 so a change to the SSE version has little effect.

Fixes fate-checkasm on x86 valgrind targets.

Valgrind 'bug' reported as https://bugs.kde.org/show_bug.cgi?id=357059
2015-12-30 13:37:57 +01:00
..
ac3dsp_init.c x86: dsputil: Eliminate some unnecessary dsputil_x86.h #includes 2014-04-04 19:08:05 +02:00
ac3dsp.asm x86: dsputil: Move ff_apply_window_int16_* bits to ac3dsp, where they belong 2014-04-04 19:08:05 +02:00
apedsp_init.c dsputil: Move APE-specific bits into apedsp 2014-05-29 06:41:15 -07:00
apedsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
audiodsp_init.c dsputil: Split audio operations off into a separate context 2014-06-22 06:20:15 -07:00
audiodsp_mmx.c dsputil: Split audio operations off into a separate context 2014-06-22 06:20:15 -07:00
audiodsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
audiodsp.h dsputil: Split audio operations off into a separate context 2014-06-22 06:20:15 -07:00
blockdsp.c x86: Unconditionally compile blockdsp and svq1enc init files 2014-07-05 04:18:34 -07:00
bswapdsp_init.c dsputil: Split bswap*_buf() off into a separate context 2014-06-22 18:22:31 -07:00
bswapdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
cabac.h
cavsdsp.c x86: cavs: Remove an unneeded scratch buffer 2015-05-28 18:40:40 +02:00
constants.c
constants.h
dca.h
dcadsp_init.c dca: remove unused decode_hf function and quant_d tables 2015-12-24 13:58:18 +01:00
dcadsp.asm dca: remove unused decode_hf function and quant_d tables 2015-12-24 13:58:18 +01:00
dct32.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
dct_init.c x86: dct: Disable dct32_float_sse on x86-64 2015-08-02 08:41:45 +02:00
dct-test.c cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs 2014-08-27 04:54:05 -07:00
dnxhdenc_init.c x86: dnxhdenc: Eliminate some unnecessary ifdefs 2014-07-18 09:58:17 -07:00
dnxhdenc.asm DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
fdct.c fdct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:25:59 -07:00
fdct.h fdct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:25:59 -07:00
fdctdsp_init.c fdct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:25:59 -07:00
fft_init.c x86: check for AV_CPU_FLAG_AVXSLOW where useful 2015-05-31 12:07:11 +02:00
fft.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
fft.h
fmtconvert_init.c fmtconvert: drop unused functions 2015-02-28 21:51:24 +01:00
fmtconvert.asm x86: use emms after ff_int32_to_float_fmul_scalar_sse 2015-12-30 13:37:57 +01:00
fpel_mmx.c
fpel.asm
fpel.h
h263_loopfilter.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
h263dsp_init.c
h264_chromamc_10bit.asm
h264_chromamc.asm
h264_deblock_10bit.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
h264_deblock.asm x86inc: Support arbitrary stack alignments 2015-08-11 11:04:11 +02:00
h264_i386.h
h264_idct_10bit.asm
h264_idct.asm
h264_intrapred_10bit.asm
h264_intrapred_init.c Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
h264_intrapred.asm x86: h264_intrapred: Don't treat 32-bit integers as 64-bit 2014-10-08 08:15:52 +00:00
h264_qpel_8bit.asm
h264_qpel_10bit.asm
h264_qpel.c h264_qpel: Use the correct header 2015-06-12 17:02:48 +01:00
h264_weight_10bit.asm
h264_weight.asm h264_weight: Fix SSSE3 biweight code with weights of 128 2015-06-12 17:02:48 +01:00
h264chroma_init.c x86: Drop some unnecessary YASM ifdefs 2014-04-04 19:08:05 +02:00
h264dsp_init.c x86: h264dsp: Fix link failure with optimizations disabled 2014-06-25 15:24:51 -07:00
hevc_deblock.asm hevc_deblock: Fix compilation with nasm 2015-02-22 22:34:20 +00:00
hevc_mc.asm hevcdsp: use a macro for .rodata section 2015-12-11 16:19:30 +01:00
hevcdsp_init.c hevcdsp: add x86 SIMD for MC 2015-12-05 21:11:52 +01:00
hpeldsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
hpeldsp_mmx.c
hpeldsp_rnd_template.c
hpeldsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
hpeldsp.h
huffyuvdsp_init.c x86: huffyuvdsp: Move inline assembly to init file 2014-07-05 04:18:34 -07:00
huffyuvdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
huffyuvencdsp_mmx.c dsputil: Split off HuffYUV encoding bits into their own context 2014-05-27 08:54:53 -07:00
idctdsp_init.c xvididct: Ensure that the scantable permutation is always set correctly 2014-08-08 11:13:29 -07:00
idctdsp_mmx.c dsputil: Split off IDCT bits into their own context 2014-06-30 07:58:46 -07:00
idctdsp.h dsputil: Split off IDCT bits into their own context 2014-06-30 07:58:46 -07:00
imdct36.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
inline_asm.h
lpc.c
Makefile hevcdsp: add x86 SIMD for MC 2015-12-05 21:11:52 +01:00
mathops.h x86: Put COPY3_IF_LT under HAVE_6REGS 2015-03-17 12:31:04 +01:00
me_cmp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
me_cmp.asm dsputil: Split motion estimation compare bits off into their own context 2014-07-17 09:07:10 -07:00
mlpdsp.c
mpegaudiodsp.c
mpegvideo.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
mpegvideodsp.c dsputil: Split off global motion compensation bits into a separate context 2014-06-23 09:58:17 -07:00
mpegvideoenc_qns_template.c dsputil: Split off *_8x8basis to a separate context 2014-07-06 13:09:24 -07:00
mpegvideoenc_template.c mpegvideo: Make sure mpegutils.h is included where needed 2015-09-13 17:34:45 +02:00
mpegvideoenc.c mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes 2014-08-15 01:26:33 -07:00
mpegvideoencdsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
mpegvideoencdsp.asm dsputil: Move pix_sum, pix_norm1, shrink function pointers to mpegvideoenc 2014-07-06 14:26:53 -07:00
pixblockdsp_init.c dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
pixblockdsp.asm dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
pngdsp_init.c
pngdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
proresdsp_init.c idct: Convert IDCT permutation #defines to an enum 2014-07-18 07:51:03 -07:00
proresdsp.asm
qpel.asm
qpeldsp_init.c qpeldsp: Mark source pointer in qpel_mc_func function pointer const 2014-07-25 02:52:54 -07:00
qpeldsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
rnd_template.c
rv34dsp_init.c
rv34dsp.asm
rv40dsp_init.c qpeldsp: Mark source pointer in qpel_mc_func function pointer const 2014-07-25 02:52:54 -07:00
rv40dsp.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
sbrdsp_init.c
sbrdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
simple_idct.c idctdsp: Add global function pointers for {add|put}_pixels_clamped functions 2014-09-02 14:41:13 -07:00
simple_idct.h simple_idct: Move x86-specific declarations to a header in the x86 directory 2014-07-19 02:33:36 -07:00
svq1enc.c x86: Unconditionally compile blockdsp and svq1enc init files 2014-07-05 04:18:34 -07:00
v210enc_init.c v210enc: Add SIMD optimised 8-bit and 10-bit encoders 2014-12-05 13:03:49 +00:00
v210enc.asm v210enc: Add SIMD optimised 8-bit and 10-bit encoders 2014-12-05 13:03:49 +00:00
vc1dsp_init.c
vc1dsp_mmx.c
vc1dsp.asm
vc1dsp.h
videodsp_init.c
videodsp.asm
vorbisdsp_init.c x86: Drop some unnecessary YASM ifdefs 2014-04-04 19:08:05 +02:00
vorbisdsp.asm
vp3dsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
vp3dsp.asm
vp6dsp_init.c
vp6dsp.asm
vp8dsp_init.c Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
vp8dsp_loopfilter.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
vp8dsp.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
vp9dsp_init.c
vp9dsp.asm
vp56_arith.h
w64xmmtest.c
xvididct_init.c xvid: Add C IDCT 2014-09-02 14:41:13 -07:00
xvididct_mmx.c x86: xvid: K&R formatting cosmetics 2014-08-27 05:58:04 -07:00
xvididct_sse2.c x86: xvid: K&R formatting cosmetics 2014-08-27 05:58:04 -07:00
xvididct.h cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs 2014-08-27 04:54:05 -07:00