FFmpeg/libavcodec/x86
Christopher Degawa 182663a58a get_cabac_inline_x86: Don't inline the assembly function on 32 bit
While the inline cabac assembly has worked correctly in i386 builds
historically, modern compiler updates has started showing issues
with it, when the function gets inlined into larger contexts that
fail to provide the amount of free registers as this function
requires.

This was an issue with Clang on Windows on i386, which was fixed
in c6d284b945324a7bc70ea8b9056040c8148aa835. However, recently
the same issues also have started showing up with GCC (both for
Windows and Linux). Whether the issue appears seems dependent on
a lot of optimizer tuning (e.g. the issue appears or goes away
depenent on the combinaton of -march= and -mtune= options),
potentially due to the compiler making different decisions on
how much to inline.

Fixes: https://trac.ffmpeg.org/ticket/8903

Signed-off-by: Martin Storsjö <martin@martin.st>
2023-04-02 00:34:10 +03:00
..
aacencdsp_init.c
aacencdsp.asm
aacpsdsp_init.c x86/aacpsdsp: add ps_hybrid_analysis_fma3 2022-09-22 13:27:43 -03:00
aacpsdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
ac3dsp_downmix.asm
ac3dsp_init.c avcodec/ac3dsp: Remove unused parameter 2022-09-29 23:37:13 +02:00
ac3dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
alacdsp_init.c
alacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
audiodsp_init.c avcodec/x86/audiodsp: add scalarproduct avx2 2022-09-13 17:43:16 +02:00
audiodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
blockdsp_init.c avcodec/blockdsp: Remove unused AVCodecContext parameter 2022-09-21 20:24:40 +02:00
blockdsp.asm
bswapdsp_init.c
bswapdsp.asm
cabac.h get_cabac_inline_x86: Don't inline the assembly function on 32 bit 2023-04-02 00:34:10 +03:00
cavsdsp.c avcodec/x86/cavsdsp: Remove unused 3DNow-macro 2022-11-09 17:39:00 +01:00
cavsidct.asm
celt_pvq_init.c
celt_pvq_search.asm
cfhddsp_init.c
cfhddsp.asm
cfhdencdsp_init.c
cfhdencdsp.asm
constants.c
constants.h
dcadsp_init.c
dcadsp.asm
dct32.asm
dct_init.c
dirac_dwt_init.c avcodec/dirac_dwt: Avoid conversions between function pointers and void* 2022-09-28 23:37:12 +02:00
dirac_dwt.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
diracdsp_init.c
diracdsp.asm
dnxhdenc_init.c
dnxhdenc.asm
exrdsp_init.c
exrdsp.asm
fdct.c
fdct.h
fdctdsp_init.c
fft_init.c
fft.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
fft.h
flac_dsp_gpl.asm
flacdsp_init.c
flacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
flacencdsp_init.c
fmtconvert_init.c avcodec/fmtconvert: Remove unused AVCodecContext parameter 2022-09-21 20:26:40 +02:00
fmtconvert.asm
fpel.asm
fpel.h
g722dsp_init.c
g722dsp.asm
h263_loopfilter.asm
h263dsp_init.c
h264_cabac.c
h264_chromamc_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_chromamc.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_deblock_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_deblock.asm
h264_idct_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_idct.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_intrapred_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_intrapred_init.c
h264_intrapred.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_qpel_8bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_qpel_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_qpel.c
h264_weight_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_weight.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264chroma_init.c
h264dsp_init.c
hevc_add_res.asm
hevc_deblock.asm
hevc_idct.asm
hevc_mc.asm
hevc_sao_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hevc_sao.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hevcdsp_init.c
hevcdsp.h
hpeldsp_init.c
hpeldsp_rnd_template.c
hpeldsp_vp3_init.c
hpeldsp_vp3.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hpeldsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hpeldsp.h
huffyuvdsp_init.c
huffyuvdsp_template.asm
huffyuvdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
huffyuvencdsp_init.c avcodec/huffyuvencdsp: Pass pix_fmt directly when initing dsp 2022-10-09 09:15:39 +02:00
huffyuvencdsp.asm
idctdsp_init.c
idctdsp.asm
idctdsp.h
imdct36.asm
inline_asm.h
jpeg2000dsp_init.c
jpeg2000dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
lossless_audiodsp_init.c
lossless_audiodsp.asm
lossless_videodsp_init.c
lossless_videodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
lossless_videoencdsp_init.c
lossless_videoencdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
lpc_init.c avcodec/lpc: use ptrdiff_t for length parameters 2022-09-22 18:17:26 -03:00
lpc.asm x86/lpc: use fused negative multiply-add instructions where useful 2022-09-22 18:17:26 -03:00
Makefile avcodec/x86/Makefile: Don't build empty files 2022-12-13 16:16:40 +01:00
mathops.h
me_cmp_init.c
me_cmp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
mlpdsp_init.c
mlpdsp.asm
mpeg4videodsp.c avcodec/mpegvideodsp: Make MpegVideoDSP MPEG-4 only 2022-10-20 07:56:17 +02:00
mpegaudiodsp.c
mpegvideo.c
mpegvideoenc_qns_template.c
mpegvideoenc_template.c
mpegvideoenc.c
mpegvideoencdsp_init.c
mpegvideoencdsp.asm
opusdsp_init.c
opusdsp.asm
pixblockdsp_init.c
pixblockdsp.asm
pngdsp_init.c
pngdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
proresdsp_init.c
proresdsp.asm
qpel.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
qpeldsp_init.c
qpeldsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
rnd_template.c
rv34dsp_init.c
rv34dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
rv40dsp_init.c
rv40dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
sbcdsp_init.c
sbcdsp.asm
sbrdsp_init.c
sbrdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
simple_idct10_template.asm
simple_idct10.asm
simple_idct.asm lavc/x86/simple_idct: Fix linking shared libavcodec with MS link.exe 2022-10-10 02:42:44 +02:00
simple_idct.h
snowdsp.c
svq1enc_init.c avcodec/svq1enc: Add SVQ1EncDSPContext, make codec context private 2022-10-14 16:14:24 +02:00
svq1enc.asm
synth_filter_init.c dca_core: convert to lavu/tx 2022-11-06 14:39:36 +01:00
synth_filter.asm
takdsp_init.c
takdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
ttadsp_init.c
ttadsp.asm
ttaencdsp_init.c
ttaencdsp.asm
utvideodsp_init.c
utvideodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
v210-init.c avcodec/x86: add avx512icl function for v210dec 2022-12-20 15:02:45 +01:00
v210.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
v210enc_init.c avcodec/v210enc: add new 10-bit function for avx512 avx512icl 2022-12-01 18:19:03 +01:00
v210enc.asm avcodec/x86/v210enc: change '0b' binary constant prefix to 'b' suffix 2022-12-03 16:44:24 +01:00
vc1dsp_init.c
vc1dsp_loopfilter.asm
vc1dsp_mc.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
vc1dsp_mmx.c
vc1dsp.h
videodsp_init.c
videodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
vorbisdsp_init.c lavc/vorbisdsp: use ptrdiff_t rather than intptr_t 2022-09-19 13:51:00 -03:00
vorbisdsp.asm
vp3dsp_init.c
vp3dsp.asm
vp6dsp_init.c
vp6dsp.asm
vp8dsp_init.c avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_loopfilter.asm
vp8dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
vp9dsp_init_10bpp.c
vp9dsp_init_12bpp.c
vp9dsp_init_16bpp_template.c
vp9dsp_init_16bpp.c
vp9dsp_init.c
vp9dsp_init.h
vp9intrapred_16bpp.asm
vp9intrapred.asm
vp9itxfm_16bpp.asm
vp9itxfm_template.asm
vp9itxfm.asm
vp9lpf_16bpp.asm
vp9lpf.asm
vp9mc_16bpp.asm
vp9mc.asm
vpx_arith.h
w64xmmtest.c
xvididct_init.c
xvididct.asm
xvididct.h