1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
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_init.c
aacencdsp.asm
aacpsdsp_init.c
aacpsdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
ac3dsp_downmix.asm
ac3dsp_init.c
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
audiodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
blockdsp_init.c
blockdsp.asm
bswapdsp_init.c
bswapdsp.asm
cabac.h
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
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
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
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
lpc.asm
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
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
simple_idct.h
snowdsp.c
svq1enc_init.c
svq1enc.asm
synth_filter_init.c
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
vorbisdsp.asm
vp3dsp_init.c
vp3dsp.asm
vp6dsp_init.c
vp6dsp.asm
vp8dsp_init.c
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