summaryrefslogtreecommitdiff
path: root/libavutil/arm
Commit message (Collapse)AuthorAge
...
* ARM: Move asm.S from libavcodec to libavutilJustin Ruggles2012-06-08
| | | | | This will allow for easier implementation of ARM-optimized functions in libraries other than libavcodec.
* build: cosmetics: Add missing end-of-line backslashes to item lists.Diego Biurrun2012-05-07
|
* arm: intreadwrite: revert 16-bit load asm to old version for gcc < 4.6Mans Rullgard2012-05-03
| | | | | | | | Commit adebad0 "arm: intreadwrite: fix inline asm constraints for gcc 4.6 and later" caused some older gcc versions to miscompile code. This reverts to the old version of the code for these compilers. Signed-off-by: Mans Rullgard <mans@mansr.com>
* arm: intreadwrite: disable inline asm for gcc 4.7 and laterMans Rullgard2012-05-02
| | | | | | | | Starting with version 4.7, gcc properly supports unaligned memory accesses on ARM. Not using the inline asm with these compilers results in better code. Signed-off-by: Mans Rullgard <mans@mansr.com>
* arm: intreadwrite: fix inline asm constraints for gcc 4.6 and laterMans Rullgard2012-05-02
| | | | | | | | | | | | | | | | | | | | With a dereferenced type-cast pointer as memory operand, gcc 4.6 and later will sometimes copy the data to a temporary location, the address of which is used as the operand value, if it thinks the target address might be misaligned. Using a pointer to a packed struct type instead does the right thing. The 16-bit case is special since the ldrh instruction addressing modes are limited compared to ldr. The "Uq" constraint produces a memory reference suitable for an ldrsb instruction, which supports the same addressing modes as ldrh. However, the restrictions appear to apply only when the operand addresses a single byte. The memory reference must thus be split into two operands each targeting one byte. Finally, the "Uq" constraint is only available in ARM mode. The Thumb-2 ldrh instruction supports most addressing modes so the normal "m" constraint can be used there. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: allow runtime masking of CPU featuresMans Rullgard2012-04-22
| | | | | | | This allows masking CPU features with the -cpuflags avconv option which is useful for testing different optimisations without rebuilding. Signed-off-by: Mans Rullgard <mans@mansr.com>
* remove iwmmxt optimizationsJanne Grunau2012-03-12
| | | | | | The were broken since August of 2010 without anyone noticing until three weeks ago. Nobody cares about it anymore and hopefully Marvell will support NEON like in the PXA978 from now on.
* bswap: make generic implementation more compiler-friendlyMans Rullgard2011-12-12
| | | | | | | | With these changes, gcc 4.5 and later recognise it as a bswap and use the proper instructions on ARM and x86. On x86, the 16-bit bswap is recognised from gcc 4.1. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: allow building in Thumb2 modeMans Rullgard2011-06-23
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: simplify inline asm with 64-bit operandsMans Rullgard2011-05-30
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: improve FASTDIV asmMans Rullgard2011-05-28
| | | | | | This uses one register less. Also add missing "cc" clobber. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: add ARMv6 optimised av_clip_uintp2Mans Rullgard2011-05-26
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: remove volatile from asm statements in libavutil/intmathMans Rullgard2011-05-26
| | | | | | | The volatile qualifiers are not needed on these statements as their effects are fully specified by constraints. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: fix av_clipl_int32_arm()Mans Rullgard2011-05-26
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Force inlining of avutil common routinesJason Garrett-Glaser2011-02-17
| | | | | | On some versions of gcc, these weren't always getting inlined due to hitting the inline cap limit in some files. This is generally bad, as most of these functions are smaller inlined than not.
* consolidate .gitignore patters into a single fileJanne Grunau2011-01-18
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* convert svn:ignore properties to .gitignore filesJanne Grunau2011-01-17
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* ARM: change return type of AV_RN16() to unsignedMåns Rullgård2010-09-26
| | | | | | | This prevents gcc inserting useless UXTH instructions, at least in some cases. Originally committed as revision 25212 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Clean up av_get_cpu_flag()Måns Rullgård2010-09-09
| | | | | | | | Instead of defining functions in per-arch header files included by the main cpu.c, define them normally and call them from the generic one. Originally committed as revision 25084 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move mm_support() from libavcodec to libavutil, make it a publicStefano Sabatini2010-09-08
| | | | | | function and rename it to av_get_cpu_flags(). Originally committed as revision 25076 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add av_ prefix to bswap macrosMåns Rullgård2010-07-10
| | | | Originally committed as revision 24170 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: optimised integer clip functionsMåns Rullgård2010-07-07
| | | | Originally committed as revision 24089 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: intmath.h cosmeticsMåns Rullgård2010-07-07
| | | | Originally committed as revision 24088 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Replace many includes of libavutil/common.h with what is actually neededMåns Rullgård2010-03-09
| | | | | | | This reduces the number of false dependencies on header files and speeds up compilation. Originally committed as revision 22407 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: add some missing includesMåns Rullgård2010-03-08
| | | | Originally committed as revision 22340 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: change argument/return type of bswap_16() to unsigned 32-bitMåns Rullgård2010-02-22
| | | | | | This avoids unnecessary masking otherwise added by the compilers. Originally committed as revision 21953 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move FASTDIV macro to intmath.hMåns Rullgård2010-01-19
| | | | Originally committed as revision 21335 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Mark all intreadwrite functions av_always_inlineMåns Rullgård2010-01-18
| | | | Originally committed as revision 21278 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: first value loaded in AV_RN64 needs to be early-clobberMåns Rullgård2009-08-16
| | | | Originally committed as revision 19656 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: use gcc inline asm in bswap.h only when availableMåns Rullgård2009-07-01
| | | | Originally committed as revision 19311 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM asm for AV_RN*()Måns Rullgård2009-04-18
| | | | | | | | | | | | | | | 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
* ARM: START/STOP_TIMER support for ARMv7Måns Rullgård2009-04-01
| | | | Originally committed as revision 18305 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: armcc versions of bswap_16/32Måns Rullgård2009-03-05
| | | | Originally committed as revision 17830 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change semantic of CONFIG_*, HAVE_* and ARCH_*.Aurelien Jacobs2009-01-13
| | | | | | They are now always defined to either 0 or 1. Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
* split bswap.h into per-arch filesMåns Rullgård2008-10-21
Originally committed as revision 15663 to svn://svn.ffmpeg.org/ffmpeg/trunk