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.asm x86: dsputil: Move ff_apply_window_int16_* bits to ac3dsp, where they belong 2014-04-04 19:08:05 +02:00
ac3dsp_init.c x86: dsputil: Eliminate some unnecessary dsputil_x86.h #includes 2014-04-04 19:08:05 +02:00
apedsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
apedsp_init.c dsputil: Move APE-specific bits into apedsp 2014-05-29 06:41: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
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
blockdsp.c x86: Unconditionally compile blockdsp and svq1enc init files 2014-07-05 04:18:34 -07:00
bswapdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
bswapdsp_init.c dsputil: Split bswap*_buf() off into a separate context 2014-06-22 18:22:31 -07: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.asm dca: remove unused decode_hf function and quant_d tables 2015-12-24 13:58:18 +01:00
dcadsp_init.c dca: remove unused decode_hf function and quant_d tables 2015-12-24 13:58:18 +01:00
dct-test.c cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs 2014-08-27 04:54:05 -07: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
dnxhdenc.asm DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
dnxhdenc_init.c x86: dnxhdenc: Eliminate some unnecessary ifdefs 2014-07-18 09:58:17 -07: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.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
fft.h
fft_init.c x86: check for AV_CPU_FLAG_AVXSLOW where useful 2015-05-31 12:07:11 +02:00
fmtconvert.asm x86: use emms after ff_int32_to_float_fmul_scalar_sse 2015-12-30 13:37:57 +01:00
fmtconvert_init.c fmtconvert: drop unused functions 2015-02-28 21:51:24 +01:00
fpel.asm
fpel.h
fpel_mmx.c
h263_loopfilter.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
h263dsp_init.c
h264_chromamc.asm
h264_chromamc_10bit.asm
h264_deblock.asm x86inc: Support arbitrary stack alignments 2015-08-11 11:04:11 +02:00
h264_deblock_10bit.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
h264_i386.h
h264_idct.asm
h264_idct_10bit.asm
h264_intrapred.asm x86: h264_intrapred: Don't treat 32-bit integers as 64-bit 2014-10-08 08:15:52 +00:00
h264_intrapred_10bit.asm
h264_intrapred_init.c Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
h264_qpel.c h264_qpel: Use the correct header 2015-06-12 17:02:48 +01:00
h264_qpel_8bit.asm
h264_qpel_10bit.asm
h264_weight.asm h264_weight: Fix SSSE3 biweight code with weights of 128 2015-06-12 17:02:48 +01:00
h264_weight_10bit.asm
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.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
hpeldsp.h
hpeldsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
hpeldsp_mmx.c
hpeldsp_rnd_template.c Add missing headers to make template files compile (more) standalone 2014-03-26 04:31:27 -07:00
huffyuvdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
huffyuvdsp_init.c x86: huffyuvdsp: Move inline assembly to init file 2014-07-05 04:18:34 -07:00
huffyuvencdsp_mmx.c dsputil: Split off HuffYUV encoding bits into their own context 2014-05-27 08:54:53 -07:00
idctdsp.h dsputil: Split off IDCT bits into their own context 2014-06-30 07:58:46 -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
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.asm dsputil: Split motion estimation compare bits off into their own context 2014-07-17 09:07:10 -07:00
me_cmp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01: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.c mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes 2014-08-15 01:26:33 -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
mpegvideoencdsp.asm dsputil: Move pix_sum, pix_norm1, shrink function pointers to mpegvideoenc 2014-07-06 14:26:53 -07:00
mpegvideoencdsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
pixblockdsp.asm dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
pixblockdsp_init.c dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
pngdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
pngdsp_init.c
proresdsp.asm
proresdsp_init.c idct: Convert IDCT permutation #defines to an enum 2014-07-18 07:51:03 -07:00
qpel.asm
qpeldsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
qpeldsp_init.c qpeldsp: Mark source pointer in qpel_mc_func function pointer const 2014-07-25 02:52:54 -07:00
rnd_template.c
rv34dsp.asm
rv34dsp_init.c
rv40dsp.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
rv40dsp_init.c qpeldsp: Mark source pointer in qpel_mc_func function pointer const 2014-07-25 02:52:54 -07:00
sbrdsp.asm x86inc: Drop SECTION_TEXT macro 2015-08-11 11:12:01 +02:00
sbrdsp_init.c
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.asm v210enc: Add SIMD optimised 8-bit and 10-bit encoders 2014-12-05 13:03:49 +00:00
v210enc_init.c v210enc: Add SIMD optimised 8-bit and 10-bit encoders 2014-12-05 13:03:49 +00:00
vc1dsp.asm
vc1dsp.h
vc1dsp_init.c
vc1dsp_mmx.c
videodsp.asm
videodsp_init.c
vorbisdsp.asm
vorbisdsp_init.c x86: Drop some unnecessary YASM ifdefs 2014-04-04 19:08:05 +02:00
vp3dsp.asm
vp3dsp_init.c lavc: AV-prefix all codec flags 2015-07-27 15:24:58 +01:00
vp6dsp.asm
vp6dsp_init.c
vp8dsp.asm Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
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
vp9dsp.asm
vp9dsp_init.c
vp56_arith.h
w64xmmtest.c
xvididct.h cosmetics: Make naming scheme of Xvid IDCT consistent with other IDCTs 2014-08-27 04:54:05 -07:00
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