ffmpeg/libswscale/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
..
Makefile libswscale: Adds ff_hscale8to15_4_avx2 and ff_hscale8to15_X4_avx2 for all filter sizes. 2021-12-15 20:04:59 -03:00
hscale_fast_bilinear_simd.c Include attributes.h directly 2021-04-19 14:34:10 +02:00
input.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
output.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
rgb2rgb.c swscale/x86/rgb2rgb: Remove obsolete MMX, 3dnow functions 2022-06-22 13:35:38 +02:00
rgb2rgb_template.c swscale/x86/rgb2rgb: Remove obsolete MMX, 3dnow functions 2022-06-22 13:35:38 +02:00
rgb_2_rgb.asm swscale/x86/rgb_2_rgb: Empty MMX state in ff_shuffle_bytes_2103_mmxext 2022-08-23 12:21:00 +02:00
scale.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
scale_avx2.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
swscale.c swscale: add opaque parameter to input functions 2022-08-19 22:09:36 +02:00
swscale_template.c swscale/x86/swscale: Remove obsolete and harmful MMX(EXT) functions 2022-06-22 13:36:04 +02:00
w64xmmtest.c
yuv2rgb.c swscale/x86/yuv2rgb: Remove obsolete MMX functions 2022-06-22 13:35:50 +02:00
yuv2rgb_template.c swscale/x86/yuv2rgb: Remove obsolete MMX functions 2022-06-22 13:35:50 +02:00
yuv2yuvX.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
yuv_2_rgb.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00