ffmpeg/libavcodec/x86
Lynne bbe95f7353
x86: replace explicit REP_RETs with RETs
From x86inc:
> On AMD cpus <=K10, an ordinary ret is slow if it immediately follows either
> a branch or a branch target. So switch to a 2-byte form of ret in that case.
> We can automatically detect "follows a branch", but not a branch target.
> (SSSE3 is a sufficient condition to know that your cpu doesn't have this problem.)

x86inc can automatically determine whether to use REP_RET rather than
REP in most of these cases, so impact is minimal. Additionally, a few
REP_RETs were used unnecessary, despite the return being nowhere near a
branch.

The only CPUs affected were AMD K10s, made between 2007 and 2011, 16
years ago and 12 years ago, respectively.

In the future, everyone involved with x86inc should consider dropping
REP_RETs altogether.
2023-02-01 04:23:55 +01:00
..
aacencdsp.asm
aacencdsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
aacpsdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
aacpsdsp_init.c x86/aacpsdsp: add ps_hybrid_analysis_fma3 2022-09-22 13:27:43 -03:00
ac3dsp.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
alacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
alacdsp_init.c
audiodsp.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
blockdsp.asm avcodec/x86/blockdsp: Remove obsolete MMX functions 2022-06-22 13:33:41 +02:00
blockdsp_init.c avcodec/blockdsp: Remove unused AVCodecContext parameter 2022-09-21 20:24:40 +02:00
bswapdsp.asm
bswapdsp_init.c
cabac.h get_cabac_inline_x86: Don't inline if 32-bit clang on windows 2021-08-19 22:29:23 +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 Include attributes.h directly 2021-04-19 14:34:10 +02:00
celt_pvq_search.asm
cfhddsp.asm
cfhddsp_init.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
cfhdencdsp.asm avcodec/x86: add cfhdenc SIMD 2021-02-27 17:09:44 +01:00
cfhdencdsp_init.c avcodec/cfhdencdsp: Constify input pointers 2022-07-31 03:18:19 +02:00
constants.c avcodec/x86/constants: Remove unused ff_pw_17 2021-02-24 09:49:03 +01:00
constants.h
dcadsp.asm avcodec/x86/dcadsp: Remove obsolete SSE function 2022-06-22 13:39:44 +02:00
dcadsp_init.c 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.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
dirac_dwt_init.c avcodec/dirac_dwt: Avoid conversions between function pointers and void* 2022-09-28 23:37:12 +02:00
diracdsp.asm avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
diracdsp_init.c avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
dnxhdenc.asm
dnxhdenc_init.c
exrdsp.asm
exrdsp_init.c
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.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
fft_init.c avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
flac_dsp_gpl.asm
flacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
flacdsp_init.c avcodec/x86/flacdsp_init: Remove double ';' 2022-09-05 20:54:57 +02: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.asm avcodec/x86/fmtconvert: Remove obsolete SSE functions 2022-06-22 13:34:32 +02:00
fmtconvert_init.c avcodec/fmtconvert: Remove unused AVCodecContext parameter 2022-09-21 20:26:40 +02:00
fpel.asm avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
fpel.h
g722dsp.asm
g722dsp_init.c
h263_loopfilter.asm
h263dsp_init.c
h264_cabac.c
h264_chromamc.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_chromamc_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_deblock_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_idct_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_intrapred.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_qpel.c avutil/mem_internal: Fix headers 2022-08-24 03:43:52 +02: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_weight.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_weight_10bit.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.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hevc_sao_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hevcdsp.h avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevcdsp_init.c avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02: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
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.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
hpeldsp_vp3_init.c avcodec/x86/hpeldsp_vp3: Remove obsolete 3dnow functions 2022-06-22 13:34:45 +02:00
huffyuvdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
huffyuvdsp_init.c avcodec/x86/huffyuvdsp: Remove obsolete MMX functions 2022-06-22 13:40:10 +02:00
huffyuvdsp_template.asm
huffyuvencdsp.asm avcodec/x86/huffyuvencdsp: Remove obsolete MMX function 2022-06-22 13:40:36 +02:00
huffyuvencdsp_init.c avcodec/huffyuvencdsp: Pass pix_fmt directly when initing dsp 2022-10-09 09:15:39 +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
idctdsp_init.c 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.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
jpeg2000dsp_init.c
lossless_audiodsp.asm avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_audiodsp_init.c avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_videodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
lossless_videodsp_init.c avcodec/x86/lossless_videodsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:41:02 +02:00
lossless_videoencdsp.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
lpc.asm x86/lpc: use fused negative multiply-add instructions where useful 2022-09-22 18:17:26 -03:00
lpc_init.c avcodec/lpc: use ptrdiff_t for length parameters 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.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
me_cmp_init.c x86: Don't hardcode the height to 8 in sad8_xy2_mmx 2022-08-17 00:00:50 +03:00
mlpdsp.asm
mlpdsp_init.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
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.c avcodec/x86/mpegvideoenc: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:43 +02:00
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
mpegvideoencdsp.asm avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
mpegvideoencdsp_init.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
opusdsp.asm
opusdsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
pixblockdsp.asm avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pixblockdsp_init.c avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pngdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
pngdsp_init.c avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 2022-07-25 16:00:57 +02:00
proresdsp.asm
proresdsp_init.c
qpel.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
qpeldsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
qpeldsp_init.c
rnd_template.c avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
rv34dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
rv34dsp_init.c avcodec/x86/rv34dsp: Remove obsolete MMX function 2022-06-22 13:39:31 +02:00
rv40dsp.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
sbcdsp.asm
sbcdsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
sbrdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
sbrdsp_init.c avcodec/x86/sbrdsp: Remove obsolete SSE function 2022-06-22 13:33:01 +02:00
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
simple_idct10.asm
simple_idct10_template.asm
snowdsp.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
svq1enc.asm avcodec/x86/svq1enc: Remove obsolete MMXEXT function 2022-06-22 13:34:19 +02:00
svq1enc_init.c avcodec/svq1enc: Add SVQ1EncDSPContext, make codec context private 2022-10-14 16:14:24 +02:00
synth_filter.asm avcodec/x86/synth_filter: Remove obsolete SSE function 2022-06-22 13:39:18 +02:00
synth_filter_init.c dca_core: convert to lavu/tx 2022-11-06 14:39:36 +01:00
takdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
takdsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
ttadsp.asm
ttadsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
ttaencdsp.asm
ttaencdsp_init.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
utvideodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
utvideodsp_init.c
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.asm avcodec/x86/v210enc: change '0b' binary constant prefix to 'b' suffix 2022-12-03 16:44:24 +01:00
v210enc_init.c avcodec/v210enc: add new 10-bit function for avx512 avx512icl 2022-12-01 18:19:03 +01:00
vc1dsp.h
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 Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
videodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
videodsp_init.c avcodec/videodsp: Constify buf in VideoDSPContext.prefetch 2022-07-31 03:14:34 +02:00
vorbisdsp.asm avcodec/x86/vorbisdsp: Remove obsolete 3dnow functions 2022-06-22 13:37:10 +02:00
vorbisdsp_init.c lavc/vorbisdsp: use ptrdiff_t rather than intptr_t 2022-09-19 13:51:00 -03:00
vp3dsp.asm avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp3dsp_init.c avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp6dsp.asm avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp6dsp_init.c avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp8dsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01: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
vp9dsp_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vp9dsp_init.h Include attributes.h directly 2021-04-19 14:34:10 +02:00
vp9dsp_init_10bpp.c
vp9dsp_init_12bpp.c
vp9dsp_init_16bpp.c avcodec/vp9: ipred_hd_16x16_16 avx2 implementation 2022-05-31 08:07:57 -04:00
vp9dsp_init_16bpp_template.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vp9intrapred.asm
vp9intrapred_16bpp.asm avcodec/vp9: ipred_hd_16x16_16 avx2 implementation 2022-05-31 08:07:57 -04:00
vp9itxfm.asm
vp9itxfm_16bpp.asm
vp9itxfm_template.asm
vp9lpf.asm
vp9lpf_16bpp.asm
vp9mc.asm vp9: don't overread by 4 pixels in ff_vp9_avg4_mmxext(). 2022-06-01 14:31:32 -04:00
vp9mc_16bpp.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 avcodec: Remove deprecated old encode/decode APIs 2021-04-27 10:43:12 -03: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
xvididct_init.c avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00