1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
FFmpeg/libavutil
Mans Rullgard 5b170c0bea x86: remove FASTDIV inline asm
GCC 4.3 and later do the right thing with the plain C code.  Earlier
versions in 32-bit mode generate one extra instruction, needlessly
zeroing what would be the high half of the shifted value.  At least
two gcc configurations miscompile the inline asm in some situations.

In 64-bit mode, all gcc versions generate imul r64, r64 followed by
shr.  On Intel i7 and later, this imul is faster 32-bit mul.  On
older Intel and all AMD, it is slightly slower.  On Atom it is much
slower.

Considering where the FASTDIV macro is used, any overall negative
performance impact of this change should be negligible.  If anyone
cares, they should file a bug against gcc and get the instruction
selection fixed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-22 14:29:10 +01:00
..
arm ARM: intmath: use native-size return types for clipping functions 2012-08-13 14:51:52 +01:00
avr32
bfin
mips mips: intreadwrite: fix inline asm for gcc 4.8 2012-05-09 13:45:22 +01:00
ppc float_dsp: ppc: add a separate header for Altivec function prototypes 2012-06-08 14:52:01 -04:00
sh4
tomi
x86 x86: remove FASTDIV inline asm 2012-08-22 14:29:10 +01:00
adler32.c
adler32.h
aes.c
aes.h
attributes.h attributes: add av_noreturn 2012-07-03 17:26:51 +02:00
audio_fifo.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
audio_fifo.h avutil: add audio fifo buffer 2012-04-20 09:43:11 -04:00
audioconvert.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
audioconvert.h Add Dolby/DPLII downmix support to libavresample 2012-06-18 10:55:00 -04:00
avassert.h
avstring.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
avstring.h
avutil.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
base64.c
base64.h
blowfish.c blowfish: Make the count parameter match the documentation 2012-07-05 12:41:57 +03:00
blowfish.h Add Blowfish encryption support in libavutil 2012-07-04 15:10:57 +03:00
bswap.h
colorspace.h
common.h libavutil: add saturating addition functions 2012-08-13 01:03:10 +01:00
cpu.c x86: build: replace mmx2 by mmxext 2012-08-03 22:51:05 +02:00
cpu.h x86: build: replace mmx2 by mmxext 2012-08-03 22:51:05 +02:00
crc_data.h
crc.c
crc.h
des.c Use av_gettime() in various places 2012-06-20 17:09:03 +01:00
des.h
dict.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
dict.h dict: add av_dict_count() 2012-08-10 15:15:00 +01:00
error.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
error.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
eval.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
eval.h
fifo.c
fifo.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
file.c Add some more missing includes after removing the implicit common.h 2012-08-15 23:48:48 +03:00
file.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
float_dsp.c float_dsp: Move vector_fmac_scalar() from libavcodec to libavutil 2012-06-18 18:01:14 -04:00
float_dsp.h float_dsp: add x86-optimized functions for vector_fmac_scalar() 2012-06-18 18:01:14 -04:00
imgutils.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
imgutils.h
internal.h dict: move struct AVDictionary definition to dict.c 2012-08-10 15:15:00 +01:00
intfloat_readwrite.c
intfloat_readwrite.h
intfloat.h intfloat: Don't use designated initializers in the public headers 2012-07-02 14:05:40 +03:00
intmath.h x86: remove FASTDIV inline asm 2012-08-22 14:29:10 +01:00
intreadwrite.h
inverse.c
lfg.c cosmetics: Consistently place static, inline and av_cold attributes/keywords. 2012-04-04 14:54:13 +02:00
lfg.h
libavutil.v lavu: change versioning script to include all av* prefixed symbols 2012-06-08 15:47:59 -04:00
libm.h configure: Check for the math function rint 2012-07-11 10:40:11 +03:00
lls.c
lls.h
log.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
log.h
lzo.c libavutil: Remove broken and pointless lzo test program. 2012-03-26 13:00:09 +02:00
lzo.h
Makefile Create version.h headers for libraries that lack them 2012-07-04 15:10:06 +02:00
mathematics.c
mathematics.h mathematics: Don't use division by zero in NAN/INFINITY macros 2012-07-01 19:06:13 +03:00
md5.c
md5.h
mem.c mem: Don't abort on av_malloc(0) in debug mode 2012-07-10 11:37:03 +03:00
mem.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
opt.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
opt.h opt: Add av_opt_set_bin() 2012-05-26 14:31:44 +03:00
parseutils.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
parseutils.h
pixdesc.c
pixdesc.h
pixfmt.h
random_seed.c random_seed: Only read /dev/*random if we have unistd.h 2012-06-29 15:52:07 +03:00
random_seed.h
rational.c libavutil: Remove pointless rational test program. 2012-03-26 13:00:09 +02:00
rational.h rational: add av_inv_q() returning the inverse of an AVRational 2012-08-05 17:46:41 +01:00
rc4.c
rc4.h
samplefmt.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
samplefmt.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
sha.c
sha.h
time.c lavu: add av_usleep() function 2012-06-22 17:15:18 +01:00
time.h lavu: add av_usleep() function 2012-06-22 17:15:18 +01:00
timer.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
tree.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
tree.h
utils.c
version.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
xtea.c xtea: Make the count parameter match the documentation 2012-07-05 12:45:18 +03:00
xtea.h doxygen: Fix function parameter names to match the code 2012-08-09 20:05:55 +02:00