Commit graph

106 commits

Author SHA1 Message Date
Thomas Martitz
4343011955 libmad: Get rid of some bad trickery with the stack pointer.
Using the stack pointer for anything else than pointing to the
current stack can have in very bad effects, especially on hosted
platforms (e.g. when mixed with signals). Remove this at
very slight performance cost.
2012-01-21 18:39:19 +01:00
Thomas Martitz
cdb28789ec libmad: Fix section attrs for hosted platforms. 2012-01-21 18:39:19 +01:00
Andree Buschmann
96af117e21 Submit FS#12142 by Sean Bartell with minor chnages by myself. Removes unused code and irrelevant files from libmad.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30065 a1c6a512-1295-4272-9138-f99709370657
2011-06-24 14:48:25 +00:00
Thomas Martitz
0bf1bd1d51 Redo r28026 so that all .S files get the __ASSEMBLER__ define.
Patch by Thomas Jarosch.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28913 a1c6a512-1295-4272-9138-f99709370657
2010-12-27 17:27:59 +00:00
Andree Buschmann
1b093cf297 Remove tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28719 a1c6a512-1295-4272-9138-f99709370657
2010-12-01 18:35:01 +00:00
Michael Giacomelli
9929512682 ARM9 optimized synth_full for libmad. Speeds up mp3 decoding by an even 2 MHz on all ARM9 and later devices. Note this is only optimized for arm9 (non-E), although it is faster on later devices. An arm9E/11 version will be needed for optimal performance on newer devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28710 a1c6a512-1295-4272-9138-f99709370657
2010-11-29 22:34:51 +00:00
Michael Giacomelli
0e53651062 Force alignment of various data structures in libmad. Speeds up Gigabeat S decoding by about 1MHz.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28639 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 02:51:13 +00:00
Michael Giacomelli
f54cbfa164 Commit first part of FS#11235 by Buschel and I. Improves scheduling on arm9 for two filter macros in libmad that are almost never called. A larger speed up will be possible when the remaining ASM code is improved.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28624 a1c6a512-1295-4272-9138-f99709370657
2010-11-20 19:06:05 +00:00
Andree Buschmann
ebcfb13a86 Correct comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28540 a1c6a512-1295-4272-9138-f99709370657
2010-11-09 21:48:33 +00:00
Andree Buschmann
5e4dc32287 Clean up libmad, remove unused compile options and source paths.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28532 a1c6a512-1295-4272-9138-f99709370657
2010-11-07 21:42:28 +00:00
Andree Buschmann
2df7a275c1 Tiny refactoring of libmad's synthesis filter. This allows minor speed up and higher precision on ARM, plus a simplification in dct32 configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28531 a1c6a512-1295-4272-9138-f99709370657
2010-11-07 21:15:13 +00:00
Nils Wallménius
f3a0ae59f5 libmad: small tweak to coldfire inline asm, gives a slight speedup and now builds fine with gcc 4.4.4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27529 a1c6a512-1295-4272-9138-f99709370657
2010-07-23 08:47:31 +00:00
Andree Buschmann
3f0b93c011 Submit FS#11491. Refactor coldfire inline asm within libmad's synth_full() to gain better readability. Thanks to Nils Wallménius for supporting.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27524 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 18:57:31 +00:00
Andree Buschmann
df238bcaf5 Remove unneeded libmad files from build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27163 a1c6a512-1295-4272-9138-f99709370657
2010-06-28 06:28:05 +00:00
Andree Buschmann
c6ced1c466 Comment further unused code in libmad.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27160 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 18:59:54 +00:00
Andree Buschmann
4c026f0c7f Comment unused code in libmad. Clean up initialization and memset'ing of decoder arrays.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27159 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 18:11:07 +00:00
Andree Buschmann
96233f9cf7 Refacture libmad's synthesis filter via macro usage. Comment unused special synthesis filter for half bandwidth.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27153 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 11:21:44 +00:00
Nils Wallménius
273d05906d libmad: Optimize away 2 instructions from coldfire III_imdct, no measurable speed difference.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26918 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 13:47:37 +00:00
Andree Buschmann
4b0c1cf23b Clean up libmad/mad.h to avoid double or inconsistent definitions of types, functions and structs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26838 a1c6a512-1295-4272-9138-f99709370657
2010-06-14 05:57:20 +00:00
Rafaël Carré
45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
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
2010-06-11 04:41:36 +00:00
Andree Buschmann
00e01e82cb Submit FS#11365. Speed up mp3 decoding on ARM processors. It is faster to use the C-implementation of dct32 compiled with -O1 as the asm implementation of dct32 compiled with -O2. Configuration for Coldfire processors is untouched. In the new configuration the stack of the COP decoding thread needs to be increased on dualcore targets. Speed is increasing by up to 0.9 MHz (-O2 against -O1 using eabi).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26746 a1c6a512-1295-4272-9138-f99709370657
2010-06-10 19:02:27 +00:00
Andree Buschmann
6805448195 Correction to clobber lists of several codec's inline assembly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26376 a1c6a512-1295-4272-9138-f99709370657
2010-05-29 15:00:10 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc 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
2010-05-06 21:04:40 +00:00
Andree Buschmann
5768f2b145 Remove residual tabs in codec directory.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25785 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 19:16:47 +00:00
Andree Buschmann
b95326da29 Change naming of arm asm routines in libmad's synthesis to match their functionality.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25784 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 19:01:37 +00:00
Andree Buschmann
13075dea87 Fix a bug introduced with r25777.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25779 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 16:32:05 +00:00
Andree Buschmann
eec5eb9ecc Refacturate arm version of libmad's synthesis filter. Only two asm macros left, renamed asm-implementation for better clarity. No change in speed or precision.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25777 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 15:45:43 +00:00
Andree Buschmann
3f5f3524d4 Change liba52 and libmad to the original 8-spaced tabbing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24863 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 21:02:57 +00:00
Andree Buschmann
398b37124e Remove all tabs within codec path.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24862 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 19:44:05 +00:00
Jens Arnold
afad93ae02 Fix another file for r12 being a scratch register. Overlooked earlier because this file used
literal 'r13' instead of 'sp'. Changed 'r13' to 'sp' for consistency.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21838 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 13:15:28 +00:00
Jens Arnold
02c031709c * ARM asm DSP and codec/plugin functions: Use r12 scratch register properly
* Fix saving another unused reg in dsp code
* Use less regs in the generic ARM mpegplayer adding idct pure DC case
* Fix ARMv6 mpegplayer adding idct using an unsaved register in pure DC case


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21803 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 13:14:35 +00:00
Michael Giacomelli
754ae4acba Enable libmad ASM optimized fixed point routines for MIPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20280 a1c6a512-1295-4272-9138-f99709370657
2009-03-10 02:13:35 +00:00
Jens Arnold
23e28f2b0c Overlooked one place where the 'archive created' warning needs to be suppressed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20197 a1c6a512-1295-4272-9138-f99709370657
2009-03-04 07:38:42 +00:00
Jens Arnold
6421f94c0d Silence warning from 'ar' if the archive had to be created.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20151 a1c6a512-1295-4272-9138-f99709370657
2009-03-01 09:04:15 +00:00
Daniel Stenberg
2e6d604bb6 Stop hiding errors by redirecting stderr to /dev/null. If we really need to do re-introduce somewhere we should rather make it dependent on the V variable so that make V=1 would still show the error and only "normal" builds would hide it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20090 a1c6a512-1295-4272-9138-f99709370657
2009-02-23 08:45:16 +00:00
Björn Stenberg
0d97a5f021 Better file suffix replacement. Bug fix by Nils Wallménius. Closes FS #9644.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19443 a1c6a512-1295-4272-9138-f99709370657
2008-12-15 09:55:20 +00:00
Nils Wallménius
5f7db212d5 Restore compiler optimization level for libmad, was lost in the buildsystem rework
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19272 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 14:46:38 +00:00
Björn Stenberg
a091d20ba0 Added 'keywords' and 'eol-style' properties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19218 a1c6a512-1295-4272-9138-f99709370657
2008-11-25 19:54:23 +00:00
Björn Stenberg
303b455ceb Remove .a files before running ar, to avoid problems with renamed files remaining in the library.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19160 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 16:49:55 +00:00
Björn Stenberg
c6b3d38a15 New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 11:27:31 +00:00
Michael Giacomelli
0097198586 Fix careless typo on my part that broke MP3 playback on Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18564 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 15:27:27 +00:00
Michael Giacomelli
712931ca6e Opps, fix mp3 decoding in the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18559 a1c6a512-1295-4272-9138-f99709370657
2008-09-20 22:20:58 +00:00
Michael Giacomelli
4e36a2b991 Commit FS#9318 - MP3 synthesis filter on COP. Loads the MP3 synth filer on to the CoProcessor on all PortalPlayer devices, resulting in an ~90% speedup according to test_codec on the Sansa. Real world improvement is somewhat less, but still considerable. Allows MP3 decoding at 30MHz without boosting, or use of more DSP/EQ with less boosting/skipping, thus improving battery life. Minor changes to mpegplayer to retain compatibility with libmad changes. Should be no significant changes for other targets or codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18557 a1c6a512-1295-4272-9138-f99709370657
2008-09-20 22:06:12 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Jens Arnold
bc97952134 libmad: PP5002 does in fact profit more from -O2 than PP502x, so use it for all targets. The previous check was half-baked (excluded iPod 3rd Gen only, but 1st/2nd Gen are also PP5002).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17675 a1c6a512-1295-4272-9138-f99709370657
2008-06-01 20:07:09 +00:00
Michael Giacomelli
54ac25fcb2 Compile libmad with -O2 for the Ipods instead of just newer PP targets. Gives a 2% speedup on Ipods, but no change elsewhere. I've left the 3G alone, but its probably worth checking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17674 a1c6a512-1295-4272-9138-f99709370657
2008-06-01 17:50:06 +00:00
Michael Sevakis
209aa8eda5 Real fake IRAM by placing .i.... section in the analagous DRAM sections in the linker scripts that hasn't done this yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17449 a1c6a512-1295-4272-9138-f99709370657
2008-05-10 22:03:45 +00:00
Michael Sevakis
a74d15025e Build the remaining plugins for Gigabeat S and straigten out the fake IRAM in the codecs and plugins.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17303 a1c6a512-1295-4272-9138-f99709370657
2008-05-02 00:38:11 +00:00
Dave Chapman
219b1f58a6 Remove some unrequired SIMULATOR checks - the CPU_* family of defines are never defined for the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14711 a1c6a512-1295-4272-9138-f99709370657
2007-09-15 16:49:28 +00:00
Jens Arnold
aebeabdade Stop libmad from crashing on 64 bit simulators.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14636 a1c6a512-1295-4272-9138-f99709370657
2007-09-07 23:45:42 +00:00