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 Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
bfin Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
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 Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
tomi Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
x86 x86: remove FASTDIV inline asm 2012-08-22 14:29:10 +01:00
adler32.c tests/examples: Mark some variables only used within their files as static. 2011-12-08 01:01:00 +01:00
adler32.h doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
aes.c Replace Subversion revisions in comments by Git hashes. 2011-12-21 09:04:25 +01:00
aes.h doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
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 multiple inclusion guard cleanup 2011-05-21 13:48:10 +02:00
avstring.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
avstring.h doxygen: misc consistency, spelling and wording fixes 2011-12-12 23:06:23 +01:00
avutil.h Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
base64.c Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
base64.h doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
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 bswap: make generic implementation more compiler-friendly 2011-12-12 12:14:14 +00:00
colorspace.h Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
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 Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
crc.c Code clean-up for crc.c, lfg.c, log.c, random_see.d, rational.c and tree.c. 2011-12-03 15:13:48 -08:00
crc.h cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
des.c Use av_gettime() in various places 2012-06-20 17:09:03 +01:00
des.h des: add possibility to calculate DES-CBC-MAC with small buffer 2011-09-21 08:28:20 +02:00
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 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
fifo.c fifo: add FIFO API test program, and fate test 2011-08-26 20:54:36 +02:00
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 doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
internal.h dict: move struct AVDictionary definition to dict.c 2012-08-10 15:15:00 +01:00
intfloat_readwrite.c cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
intfloat_readwrite.h lavu: replace int/float punning functions 2011-12-11 18:47:19 +00:00
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 intreadwrite.h: fix AV_RL32/AV_RB32 signedness. 2011-06-16 20:49:19 +02:00
inverse.c inverse.c: Replace unnecessary intmath.h header by necessary stdint.h. 2011-06-07 10:31:26 +02:00
lfg.c cosmetics: Consistently place static, inline and av_cold attributes/keywords. 2012-04-04 14:54:13 +02:00
lfg.h doxygen: Drop array size declarations from Doxygen parameter names. 2011-07-03 18:30:02 +02:00
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: use av_lfg instead of rand() in test program 2011-07-11 21:09:27 +01:00
lls.h Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
log.c Don't include common.h from avutil.h 2012-08-15 22:32:06 +03:00
log.h log.h: make AVClass a named struct 2011-10-12 23:39:31 +02:00
lzo.c libavutil: Remove broken and pointless lzo test program. 2012-03-26 13:00:09 +02:00
lzo.h doxygen: Replace '\' by '@' in Doxygen markup tags. 2011-12-07 15:29:14 +01:00
Makefile Create version.h headers for libraries that lack them 2012-07-04 15:10:06 +02:00
mathematics.c avutil: add av_rescale_q_rnd() to allow different rounding 2012-02-20 15:08:40 -05:00
mathematics.h mathematics: Don't use division by zero in NAN/INFINITY macros 2012-07-01 19:06:13 +03:00
md5.c md5: cosmetics 2011-07-03 18:19:19 +01:00
md5.h cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
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 doxygen: misc consistency, spelling and wording fixes 2011-12-12 23:06:23 +01:00
pixdesc.c pixdesc: mark pseudopaletted formats with a special flag. 2012-02-08 21:01:31 +01:00
pixdesc.h pixdesc: mark pseudopaletted formats with a special flag. 2012-02-08 21:01:31 +01:00
pixfmt.h Revert "sws/pixfmt/pixdesc: add support for yuva444p" 2012-01-26 18:06:57 -08:00
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 doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
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 Replace FFmpeg with Libav in licence headers 2011-03-19 13:33:20 +00:00
rc4.h doxygen: Consistently use '@' instead of '\' for Doxygen markup. 2011-06-24 00:37:49 +02:00
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 Move some conditionally used variables into the block where they are used. 2012-02-13 19:20:54 +01:00
sha.h doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
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 doxy: provide a start page and document libavutil 2011-11-22 17:16:02 +01:00
utils.c lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums 2011-04-26 08:38:57 +02:00
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