FFmpeg/libavutil
Måns Rullgård 3c55ce039d ARM asm for AV_RN*()
ARMv6 and later support unaligned loads and stores for single
word/halfword but not double/multiple.  GCC is ignorant of this and
will always use bytewise accesses for unaligned data.  Casting to an
int32_t pointer is dangerous since a load/store double or multiple
instruction might be used (this happens with some code in FFmpeg).
Implementing the AV_[RW]* macros with inline asm using only supported
instructions gives fast and safe unaligned accesses.  ARM RVCT does
the right thing with generic code.

This gives an overall speedup of up to 10%.

Originally committed as revision 18601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 00:00:28 +00:00
..
arm ARM asm for AV_RN*() 2009-04-18 00:00:28 +00:00
bfin Split libavutil/timer.h per architecture 2009-04-01 22:56:22 +00:00
ppc Split libavutil/timer.h per architecture 2009-04-01 22:56:22 +00:00
sh4 Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
x86 Split libavutil/timer.h per architecture 2009-04-01 22:56:22 +00:00
adler32.c Fix compilation of adler32 test program: Use av_log_set_level() 2009-03-19 01:10:30 +00:00
adler32.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
aes.c cosmetics: Rename prn variable to prng (Pseudo Random Number Generator). 2009-04-10 17:23:38 +00:00
aes.h Add "const" to AES function arguments where possible without generating 2009-01-28 17:48:26 +00:00
avstring.c Rename string.c to avstring.c so that the name of header and C file match. 2009-01-29 22:12:36 +00:00
avstring.h spelling/grammar/consistency review part III 2009-01-28 23:16:49 +00:00
avutil.h Implement av_fifo_space(). 2009-04-02 23:22:19 +00:00
base64.c Mark non-exported functions in test and example programs as static. 2009-03-31 09:32:59 +00:00
base64.h Document the av_base64_encode/decode functions. 2009-02-08 21:23:15 +00:00
bswap.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
common.h Avoid warnings from AV_GCC_VERSION_AT_LEAST with some non-gcc compilers 2009-02-22 00:13:23 +00:00
crc_data.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
crc.c spelling/grammar/consistency review part III 2009-01-28 23:16:49 +00:00
crc.h spelling/grammar/consistency review part I 2009-01-28 00:16:05 +00:00
des.c Mark non-exported functions in test and example programs as static. 2009-03-31 09:32:59 +00:00
des.h Add support for 3DES to DES module 2009-02-03 16:45:42 +00:00
fifo.c Implement av_fifo_space(). 2009-04-02 23:22:19 +00:00
fifo.h Implement av_fifo_space(). 2009-04-02 23:22:19 +00:00
integer.c Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
integer.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
internal.h When warning about forbidden pseudo random number generation functions, 2009-03-21 16:16:04 +00:00
intfloat_readwrite.c Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
intfloat_readwrite.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
intreadwrite.h ARM asm for AV_RN*() 2009-04-18 00:00:28 +00:00
lfg.c Fix reference to av_random where av_lfg_get was meant. 2009-03-21 16:14:21 +00:00
lfg.h spelling/grammar/consistency review part I 2009-01-28 00:16:05 +00:00
lls.c Align test program output columns. 2009-03-20 11:40:05 +00:00
lls.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
log.c Compact repeated messages to "Last message repeated x times". 2009-02-22 17:53:14 +00:00
log.h Remove all remaining code that was disabled through the major version bump. 2009-03-09 10:24:47 +00:00
lzo.c Give liblzo benchmark conditionals more descriptive names and add convenience 2009-04-09 15:11:48 +00:00
lzo.h Documentation for LZO error return value flags 2009-02-02 20:42:06 +00:00
Makefile Add a configure check for lzo1x_999_compress() and compile the lzo test program 2009-04-09 14:55:05 +00:00
mathematics.c Remove all remaining code that was disabled through the major version bump. 2009-03-09 10:24:47 +00:00
mathematics.h Add common.h #include, necessary for av_const. 2009-01-28 08:50:10 +00:00
md5.c spelling/grammar/consistency review part I 2009-01-28 00:16:05 +00:00
md5.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
mem.c Check return value of posix_memalign and explicitly set pointer to NULL if it 2009-02-21 20:38:27 +00:00
mem.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
pca.c cosmetics: Rename prn variable to prng (Pseudo Random Number Generator). 2009-04-10 17:23:38 +00:00
pca.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
pixfmt.h Use PIX_FMT_NE() for defining the PIX_FMT_RGB32 variants macros. 2009-03-23 23:01:11 +00:00
random_seed.c add ff_random_get_seed to be used in conjunction with random functions 2009-03-08 01:28:14 +00:00
random_seed.h Fix typo: 'conjuction' -> 'conjunction'. 2009-03-15 16:36:36 +00:00
rational.c Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
rational.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
rc4.c Remove more functions disabled by major version bump. 2009-03-08 15:02:12 +00:00
rc4.h Add and use a public API for RC4 and DES, analogous to the AES API. 2009-02-03 14:20:55 +00:00
sha1.c spelling/grammar/consistency review part I 2009-01-28 00:16:05 +00:00
sha1.h Globally rename the header inclusion guard names. 2008-08-31 07:39:47 +00:00
softfloat.c Make softfloat test program compile again: Setting the av_log_level variable 2009-03-20 00:23:13 +00:00
softfloat.h spelling/grammar/consistency review part I 2009-01-28 00:16:05 +00:00
timer.h ARM: START/STOP_TIMER support for ARMv7 2009-04-01 22:56:26 +00:00
tree.c cosmetics: Rename prn variable to prng (Pseudo Random Number Generator). 2009-04-10 17:23:38 +00:00
tree.h Use full internal pathname in doxygen @file directives. 2009-02-01 02:00:19 +00:00
utils.c Cosmetics: fix weird indent. 2008-08-08 19:50:35 +00:00
x86_cpu.h typedef int x86_reg on non x86 2009-03-19 14:49:47 +00:00