summaryrefslogtreecommitdiff
path: root/apps/codecs/lib (follow)
Commit message (Collapse)AuthorAge
* codeclib: inline assembler for fft4 and fft8 on coldfire, small 0.2-0.3MHz ↵Nils Wallménius2010-12-01
| | | | | | speedup with gcc 3.4, larger 0.6-0.8MHz speedup with gcc 4.4/4.5 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28716 a1c6a512-1295-4272-9138-f99709370657
* codeclib: there is no need to limit the outputs of the coldfire X(N)PROD_R ↵Nils Wallménius2010-11-24
| | | | | | macros to data registers, no significant speed diff git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28656 a1c6a512-1295-4272-9138-f99709370657
* codeclib: don't mark the outputs for the coldfire X(N)PROD_R asm macros as ↵Nils Wallménius2010-11-23
| | | | | | earlyclobbers as they are not, lets gcc produce better code. Speedup of 0.2-0.3MHz for codecs using the mdct, (larger speedup when building with gcc 4.4). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28650 a1c6a512-1295-4272-9138-f99709370657
* Remove unused define.Andree Buschmann2010-11-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28633 a1c6a512-1295-4272-9138-f99709370657
* Rearrange and remove some manual register assignments, make use of pointer ↵Dave Hooper2010-10-12
| | | | | | address increments for free on arm, and remove macros in favour of explicit inline fns. also add memory clobbers to all uses of stm in inline asm. appears to resolve issues with codeclib failing to work as expected when using ARM_ASM optimisations on targets with native position independent code (e.g. android rockbox targets, but also tremor on non-rockbox targets that has been patched with the fastermdct patches) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28262 a1c6a512-1295-4272-9138-f99709370657
* ARMv6 supports unaligned memory accesses and they are enabled on our only ↵Nils Wallménius2010-09-29
| | | | | | ARMv6 target so we might as well use them. Speeds up decoding of a flac8 file by 3.5%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28183 a1c6a512-1295-4272-9138-f99709370657
* Move setjmp to lib and add setjmp for sh (imported from newlib) and compile ↵Thomas Martitz2010-08-24
| | | | | | | | | it as separate library. It's used by both, plugins and codecs, and sh/hwcodec doesn't compile codecs so it doesn't fit into sources. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27869 a1c6a512-1295-4272-9138-f99709370657
* Make codeclib_misc.h include the asm headers to simplify inclusion magic.Nils Wallménius2010-07-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27615 a1c6a512-1295-4272-9138-f99709370657
* FS#11454 Tuning of codec compiler optionsNils Wallménius2010-07-18
| | | | | | | | | | | | | | | | | | | Tested with h300 and sansa c200v1 h300 speedups: a52: 2% cook: 9-17% aac: 0.5% vorbis: 0.5% wma: 6-12% c200v1 speedups: alac: 1.5% wma 3-4% wavpack 2% git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27486 a1c6a512-1295-4272-9138-f99709370657
* Begin shoehorning wma into the clip codec buffer again. Reduce the static ↵Nils Wallménius2010-07-17
| | | | | | buffer used by init_vlc so that it is no larger than is needed. Make the VLCcode struct packed to save space. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27457 a1c6a512-1295-4272-9138-f99709370657
* Enable ff_copy_bits in ffmpeg_bitstream.c and put_bits.h and intreadwrite.h ↵Mohamed Tarek2010-07-17
| | | | | | to codeclib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27452 a1c6a512-1295-4272-9138-f99709370657
* libwma has Huffman tables that are too big for the stack temp buffer. Make ↵Nils Wallménius2010-07-16
| | | | | | temp buffer static. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27446 a1c6a512-1295-4272-9138-f99709370657
* Sync codeclib bitstream code with upstream ffmpeg code. Build ↵Nils Wallménius2010-07-15
| | | | | | ffmpeg_bitstream.c as a part of the codec lib. Use this codeclib implementation in libffmpegFLAC. Implement adapted version of the unaligned longword reading optimization for coldfire from the libwma version of this code. Speeds up cook decoding by 2-3% on h300 and flac by 25% on h300, also speeds up flac decoding by 2% on c200 (decoding speed of cook on c200 is unchanged). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27430 a1c6a512-1295-4272-9138-f99709370657
* Check if ROCKBOX_LITTLE_ENDIAN and ROCKBOX_BIG_ENDIAN are defined, no which ↵Rafaël Carré2010-07-14
| | | | | | value they have git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27419 a1c6a512-1295-4272-9138-f99709370657
* Rename/change SIMVER to APP_TYPE in the Makefiles.Thomas Martitz2010-07-10
| | | | | | | SIMVER was really only used to detect a simulator build. With APP_TYPE you can now differentiate between simulator, application, checkwps and database builds. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27372 a1c6a512-1295-4272-9138-f99709370657
* Fix inline asm argument. Shouldn't have much impact in practice but might ↵Nils Wallménius2010-06-27
| | | | | | save a load if gcc is clever. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27157 a1c6a512-1295-4272-9138-f99709370657
* Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with ↵Thomas Martitz2010-06-21
| | | | | | | | | | | #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). The simulator defines PLATFORM_HOSTED, as RaaA will do (RaaA will not define SIMULATOR). The new define is to (de-)select code to compile on hosted platforms generally. Should be no functional change to targets or the simulator. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27019 a1c6a512-1295-4272-9138-f99709370657
* ARMv6 versions of X(N)PROD31 macros and MULT32 macro. Saves about 1MHz or 3% ↵Nils Wallménius2010-06-17
| | | | | | decoding vorbis on gigabeat S. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26889 a1c6a512-1295-4272-9138-f99709370657
* FS#11335 by me: make ARM assembly functions thumb-friendlyRafaël Carré2010-06-11
| | | | | | | | | | | | | We can't pop into pc on ARMv4t when using thumb: the T bit won't be modified if we are returning to a thumb function Code running on ARMv4t should use the new ldrpc / ldmpc macros instead of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc} No modification on pure ARM builds and ARMv5+ Note: USE_THUMB is currently never defined, no targets can currently be built with -mthumb, see FS#6734 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
* ARM: use BX when branch to an address in registerRafaël Carré2010-05-31
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26432 a1c6a512-1295-4272-9138-f99709370657
* Two tiny tweaks to some arm asmNils Wallménius2010-05-13
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25993 a1c6a512-1295-4272-9138-f99709370657
* Some asm for mdct on coldfire, speeds up vorbis decoding by about 0.3MHzNils Wallménius2010-05-13
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25984 a1c6a512-1295-4272-9138-f99709370657
* Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz2010-05-06
| | | | | | | | directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
* Use bx lr unconditionally in setjmp_arm.SRafaël Carré2010-03-09
| | | | | | Rockbox doesn't support ARMv4 non T CPUs git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25083 a1c6a512-1295-4272-9138-f99709370657
* Remove unused GPL code from ffmpeg mdct library in order to restore it to LGPL.Michael Giacomelli2010-03-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25035 a1c6a512-1295-4272-9138-f99709370657
* Remove all tabs within codec path.Andree Buschmann2010-02-22
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24862 a1c6a512-1295-4272-9138-f99709370657
* Remove CLIP_TO_15 from codeclib. Remove tabs.Andree Buschmann2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24834 a1c6a512-1295-4272-9138-f99709370657
* Make mdct compilable again for non-ARM targets.Andree Buschmann2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24822 a1c6a512-1295-4272-9138-f99709370657
* Eep, didn't mean to commit those other filesDave Hooper2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24820 a1c6a512-1295-4272-9138-f99709370657
* Get a few more % speedup on ARM (measured on ipod video) - improve imdct ↵Dave Hooper2010-02-21
| | | | | | full final symmetries using ldm/stm and simple register swapping. Also, add more comments (and improve/update some of the existing ones) regarding the layout of the imdct_half and the imdct_full git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24819 a1c6a512-1295-4272-9138-f99709370657
* Adding ICODE for imdct (and its constituent ifft bits) gives 0.5MHz boost on ↵Dave Hooper2010-02-20
| | | | | | arm (ipod video) and about 5MHz boost on coldfire (H120) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24786 a1c6a512-1295-4272-9138-f99709370657
* I don't yet fully understand why this is required, but without it the output ↵Dave Hooper2010-02-18
| | | | | | is signed-inverted (compared to e.g. the output of oggdec). ac3 confirmed to be ok so the problem must be in the imdct not the ifft. but the algo seems correct (in that seems same as original ffmpeg version).. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24739 a1c6a512-1295-4272-9138-f99709370657
* split_radix_permutation also unused (since now a hardcoded table) - but left ↵Dave Hooper2010-02-17
| | | | | | intact so we can/could regenerate the table git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24716 a1c6a512-1295-4272-9138-f99709370657
* FIx typo in coldfire asm which caused yellowDave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24715 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow (ff_fft_permute_c an unused function in codeclib)Dave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24713 a1c6a512-1295-4272-9138-f99709370657
* Merge from branches/mdctexp - faster ifft+imdct in codec libDave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24712 a1c6a512-1295-4272-9138-f99709370657
* Move udiv32_arm.S into libdemac, as this divider is specialized for the APE ↵Andrew Mahone2010-02-04
| | | | | | codec and an optimized divider is already provided for general use in codeclib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24506 a1c6a512-1295-4272-9138-f99709370657
* Reduce reciprocal table size a bit on Nano 2nd Gen as well (fix red).Jens Arnold2010-02-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24474 a1c6a512-1295-4272-9138-f99709370657
* APE codec: Speed up decoding of -c2000 and higher on ARMv4 and coldfire by ↵Jens Arnold2010-02-02
| | | | | | fusing vector math for the filters. Speedup is roughly 3.5% for -c2000, 8% for -c3000 and 12% for -c4000. To be extended to other architectures. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24473 a1c6a512-1295-4272-9138-f99709370657
* FS#10943, optimized division and clz routines to replace libgcc routines for ↵Andrew Mahone2010-02-01
| | | | | | ARM. Replaces libgcc support functions for unsigned and signed 32-bit division on ARMv4 and up, and leading-zero count on ARMv4. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24432 a1c6a512-1295-4272-9138-f99709370657
* Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code ↵Andrew Mahone2010-01-30
| | | | | | out of IRAM for sizes that aren't near realtime and extend udiv32_arm reciprocal table. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24376 a1c6a512-1295-4272-9138-f99709370657
* Small fix for ARMv5e/v6 APE divider, correct large-divisor path and remove ↵Andrew Mahone2010-01-28
| | | | | | specialized version of it for small dividend, as the test and branch can't be fit into delay slots on that path. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24360 a1c6a512-1295-4272-9138-f99709370657
* Fix red: smlal operand ordering in udiv32_arm.SAndrew Mahone2010-01-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24355 a1c6a512-1295-4272-9138-f99709370657
* Improvements to specialized dividers for APE codec:Andrew Mahone2010-01-28
| | | | | | | | | * Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S. * On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200. * Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
* Invert divisor earlier in udiv32_arm, allowing the div0 test to be done ↵Andrew Mahone2010-01-03
| | | | | | before entering the 32-bit divide portion of the code, and making the handling of div0 simpler. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24166 a1c6a512-1295-4272-9138-f99709370657
* More tabs removedAndree Buschmann2010-01-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24157 a1c6a512-1295-4272-9138-f99709370657
* Use long jump to reach __div0 from udiv32_arm if building with IRAM and ↵Andrew Mahone2010-01-03
| | | | | | without EABI. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24152 a1c6a512-1295-4272-9138-f99709370657
* More comments for udiv32_armv4.S, reduce zero divisor test to one cycle for ↵Andrew Mahone2010-01-03
| | | | | | the skipped branch by setting flags when inverting divisor, 32-bit numerators are handled by calling the 31-bit divider and fixing the results. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24151 a1c6a512-1295-4272-9138-f99709370657
* Add missing EOF newline.Andrew Mahone2010-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24143 a1c6a512-1295-4272-9138-f99709370657
* Remove special cases from udiv32_armv4.S, except for zero divisor and large ↵Andrew Mahone2010-01-02
| | | | | | numerator. Improvement of 1.23MHz on e200 with ape normal. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24142 a1c6a512-1295-4272-9138-f99709370657