1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
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 avcodec/x86/blockdsp: Remove obsolete MMX functions 2022-06-22 13:33:41 +02:00
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 avcodec/x86/cavsdsp: Remove obsolete MMX(EXT), 3dnow functions 2022-06-22 13:31:40 +02:00
celt_pvq_init.c
celt_pvq_search.asm
cfhddsp_init.c
cfhddsp.asm
cfhdencdsp_init.c avcodec/cfhdencdsp: Constify input pointers 2022-07-31 03:18:19 +02:00
cfhdencdsp.asm
constants.c
constants.h
dcadsp_init.c avcodec/x86/dcadsp: Remove obsolete SSE function 2022-06-22 13:39:44 +02:00
dcadsp.asm avcodec/x86/dcadsp: Remove obsolete SSE function 2022-06-22 13:39:44 +02:00
dct32.asm avcodec/x86/dct32: Remove obsolete SSE function 2022-06-22 13:39:06 +02:00
dct_init.c avcodec/x86/dct32: Remove obsolete SSE function 2022-06-22 13:39:06 +02:00
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 avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
diracdsp.asm avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
dnxhdenc_init.c
dnxhdenc.asm
exrdsp_init.c
exrdsp.asm
fdct.c avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fdct.h avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fdctdsp_init.c avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fft_init.c avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
fft.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
fft.h avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
flac_dsp_gpl.asm
flacdsp_init.c avcodec/x86/flacdsp_init: Remove double ';' 2022-09-05 20:54:57 +02:00
flacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
flacencdsp_init.c avcodec/flacdsp: Split encoder-only parts into a ctx of its own 2022-08-05 03:28:45 +02:00
fmtconvert_init.c avcodec/fmtconvert: Remove unused AVCodecContext parameter 2022-09-21 20:26:40 +02:00
fmtconvert.asm avcodec/x86/fmtconvert: Remove obsolete SSE functions 2022-06-22 13:34:32 +02:00
fpel.asm avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
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 avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
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 avcodec/x86/h264_intrapred: Remove obsolete MMX(EXT) functions 2022-06-22 13:31:53 +02:00
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 avutil/mem_internal: Fix headers 2022-08-24 03:43:52 +02:00
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 avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264dsp_init.c avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
hevc_add_res.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_deblock.asm
hevc_idct.asm avcodec/x86/hevcdsp_init: Remove obsolete MMXEXT functions 2022-06-22 13:31:12 +02:00
hevc_mc.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
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 avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevcdsp.h avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hpeldsp_init.c avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
hpeldsp_rnd_template.c
hpeldsp_vp3_init.c avcodec/x86/hpeldsp_vp3: Remove obsolete 3dnow functions 2022-06-22 13:34:45 +02:00
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 avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
huffyuvdsp_init.c avcodec/x86/huffyuvdsp: Remove obsolete MMX functions 2022-06-22 13:40:10 +02:00
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 avcodec/x86/huffyuvencdsp: Remove obsolete MMX function 2022-06-22 13:40:36 +02:00
idctdsp_init.c avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
idctdsp.asm avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
idctdsp.h avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
imdct36.asm avcodec/x86/mpegaudiodsp: Remove obsolete SSE function 2022-06-22 13:38:52 +02:00
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 avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_audiodsp.asm avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_videodsp_init.c avcodec/x86/lossless_videodsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:41:02 +02:00
lossless_videodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
lossless_videoencdsp_init.c avcodec/lossless_videoencdsp: Constify src sub_left_predict 2022-07-31 03:16:35 +02:00
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 x86: Don't hardcode the height to 8 in sad8_xy2_mmx 2022-08-17 00:00:50 +03:00
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 avcodec/x86/mpegaudiodsp: Remove obsolete SSE function 2022-06-22 13:38:52 +02:00
mpegvideo.c
mpegvideoenc_qns_template.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
mpegvideoenc_template.c avcodec/x86/mpegvideoenc: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:43 +02:00
mpegvideoenc.c avcodec/x86/mpegvideoenc: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:43 +02:00
mpegvideoencdsp_init.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
mpegvideoencdsp.asm avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
opusdsp_init.c
opusdsp.asm
pixblockdsp_init.c avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pixblockdsp.asm avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pngdsp_init.c avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 2022-07-25 16:00:57 +02:00
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 avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
rv34dsp_init.c avcodec/x86/rv34dsp: Remove obsolete MMX function 2022-06-22 13:39:31 +02:00
rv34dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
rv40dsp_init.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
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 avcodec/x86/sbrdsp: Remove obsolete SSE function 2022-06-22 13:33:01 +02:00
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 avcodec/x86/svq1enc: Remove obsolete MMXEXT function 2022-06-22 13:34:19 +02:00
synth_filter_init.c dca_core: convert to lavu/tx 2022-11-06 14:39:36 +01:00
synth_filter.asm avcodec/x86/synth_filter: Remove obsolete SSE function 2022-06-22 13:39:18 +02:00
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 avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
vc1dsp_loopfilter.asm avcodec/x86/vc1dsp_init: Remove obsolete 3dnow, MMX(EXT) functions 2022-06-22 13:28:57 +02:00
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 avcodec/videodsp: Constify buf in VideoDSPContext.prefetch 2022-07-31 03:14:34 +02:00
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 avcodec/x86/vorbisdsp: Remove obsolete 3dnow functions 2022-06-22 13:37:10 +02:00
vp3dsp_init.c avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp3dsp.asm avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp6dsp_init.c avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp6dsp.asm avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp8dsp_init.c avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_loopfilter.asm avcodec/x86/vp8dsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:39:57 +02:00
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 avcodec/vp56: Move VP5-9 range coder functions to a header of their own 2022-07-28 03:49:54 +02:00
w64xmmtest.c
xvididct_init.c avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00
xvididct.asm avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00
xvididct.h avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00