Mercurial > libavutil.hg
view Makefile @ 728:1fa3820b1a84 libavutil
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%.
author | mru |
---|---|
date | Sat, 18 Apr 2009 00:00:28 +0000 |
parents | db9e213fcc5b |
children | 4d40308d9343 |
line wrap: on
line source
include $(SUBDIR)../config.mak NAME = avutil HEADERS = adler32.h \ avstring.h \ avutil.h \ base64.h \ common.h \ crc.h \ fifo.h \ intfloat_readwrite.h \ log.h \ lzo.h \ mathematics.h \ md5.h \ mem.h \ pixfmt.h \ rational.h \ sha1.h OBJS = adler32.o \ aes.o \ avstring.o \ base64.o \ crc.o \ des.o \ fifo.o \ intfloat_readwrite.o \ lfg.o \ lls.o \ log.o \ lzo.o \ mathematics.o \ md5.o \ mem.o \ random_seed.o \ rational.o \ rc4.o \ sha1.o \ tree.o \ utils.o \ TESTPROGS = adler32 aes base64 crc des lls md5 pca sha1 softfloat tree TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo DIRS = arm bfin sh4 x86 include $(SUBDIR)../subdir.mak $(SUBDIR)lzo-test$(EXESUF): ELIBS = -llzo2