Andrew Mahone
5313bf52b5
Invert divisor earlier in udiv32_arm, allowing the div0 test to be done 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
2010-01-03 15:57:03 +00:00
Andree Buschmann
5cebdcd06b
More tabs removed
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24157 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 11:12:31 +00:00
Andrew Mahone
686c4e53ce
Use long jump to reach __div0 from udiv32_arm if building with IRAM and without EABI.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24152 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 04:48:19 +00:00
Andrew Mahone
c1f4d4037a
More comments for udiv32_armv4.S, reduce zero divisor test to one cycle for 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
2010-01-03 04:30:13 +00:00
Andrew Mahone
d03768bc14
Add missing EOF newline.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24143 a1c6a512-1295-4272-9138-f99709370657
2010-01-02 15:25:34 +00:00
Andrew Mahone
934514558b
Remove special cases from udiv32_armv4.S, except for zero divisor and large 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
2010-01-02 15:15:21 +00:00
Andrew Mahone
822abc1236
Add 31/31-bit unsigned division in apps/codecs/lib/udiv_arm.S, with 2 cycles / iteration, falling back to previous 32-bit, 3 cycle / iteration code when needed (well under 1% of divisions in sample file). APE normal sample is now 96.90% realtime, approx 1.3% improved vs svn. TODO: unify divisor normalization for both trial subtraction routines, possibly use divisor bits to select 31- vs 32-bit division.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24130 a1c6a512-1295-4272-9138-f99709370657
2009-12-31 08:32:15 +00:00
Nils Wallménius
b2a27b4280
Improved bitrev12, using a larger LUT to save one lookup, speeds up vorbis about 2% on beast, about 0.5% on h300
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23973 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 15:00:20 +00:00
Andrew Mahone
bafe14db55
Remove some sample functions from codeclib - these were for verifying the generated asm for bs_generic and never intended for use.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23911 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 17:13:06 +00:00
Andrew Mahone
85aad9b397
Extend av_log2 in codeclib into a generic for scanning for set bits, which can provide either log2 or leading-zero-count output, and can force mapping 0 input to 0 output if needed (otherwise 0 input produces undefined result). Replace av_log2 in lib/codeclib.h, floor_log2 and wl_min_lzc in libfaad/common.c and common.h, and count_leading_zeros in libalac/alac.c with macros using bs_generic.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23903 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 02:24:45 +00:00
Andrew Mahone
50512cdeac
Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
2009-12-06 04:43:23 +00:00
Nils Wallménius
cd22b32450
slightly faster asm av_log2 for armv6 (currently only Gigabeat S)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23868 a1c6a512-1295-4272-9138-f99709370657
2009-12-06 02:03:03 +00:00
Andrew Mahone
491e0978ec
Fix yellow: mixed signed/unsigned in conditional.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23867 a1c6a512-1295-4272-9138-f99709370657
2009-12-05 21:53:49 +00:00
Andrew Mahone
2aeb6c781d
Slightly improve av_log2 in codeclib on ARMv6.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23866 a1c6a512-1295-4272-9138-f99709370657
2009-12-05 21:32:23 +00:00
Nils Wallménius
b9d7f98f8c
Move av_log2 function and asociated table to the codec lib, remove 3 identical implementations, always have LUT in iram (gives a *tiny* speedup on coldfire), make the clz based function return the same value as the non clz based function for 0 input to be safe (slows down flac ~2% on the gigabeat S)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23858 a1c6a512-1295-4272-9138-f99709370657
2009-12-05 16:47:43 +00:00
Nils Wallménius
3c1cffae70
These macros have been replaced by (UN)LIKELY macros and were not used anywhere.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23780 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 09:44:15 +00:00
Dave Hooper
d43bcb7dc4
C code is NOT faster on S3C2440 - tested by AlexP on r22529
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22530 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 13:03:40 +00:00
Magnus Holmgren
0dad8d5ae9
Don't know why svn decided to delete tlsf/src... Maybe due to some aborted tests I did to see where it would be best to place TLSF.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22529 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:42:47 +00:00
Magnus Holmgren
3fad1523c7
FS#10466: Introduce a real malloc for tremor.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22528 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:23:40 +00:00
Dave Hooper
260ed99139
Removed remaining MB usage
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22527 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:20:04 +00:00
Dave Hooper
e9dcb0f145
Fix condition code clobbers (and one TAB) for inline arm code in lib and libtremor
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22526 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:07:32 +00:00
Dave Hooper
59cdbf5efc
Rerrange some registers in butterfly_generic to combine some 2-word stores into 4-word stores and remove some redundant mov instructions. Shave off some additional instructions (stacking and additions) in butterfly_32 by getting butterfly_8 and butterfly_16 to do the address incrementing for us. Add a few comments.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22525 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 11:50:15 +00:00
Michael Giacomelli
873d266199
Add stdint.h to the codeclib when compiled outside of rockbox so that int32_t is typedef'ed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22502 a1c6a512-1295-4272-9138-f99709370657
2009-08-24 18:14:56 +00:00
Dominik Riebeling
6e5e625596
Remove svn:executable on source file and set keywords.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22342 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 12:24:50 +00:00
Mohamed Tarek
adf3f09251
Move bitstream.[ch] to codecs/lib/ffmpeg_bitstream.[ch] to avoid duplicate copies across codecs.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22337 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 22:06:42 +00:00
Mohamed Tarek
2402aecbb5
remove duplicates of bswap.h from libwma, libcook and libatrac. Create codecs/lib/ffmpeg_bswap.h and use it instead.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22328 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 16:50:52 +00:00
Mohamed Tarek
8036207190
Also modify mdct_lookup.c for compiling outside rockbox.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22296 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:19:33 +00:00
Mohamed Tarek
272954954c
Modify the mdct library to enable using it outside rockbox - No functional changes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22295 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:02:31 +00:00
Thomas Martitz
85ece84b1c
Remove various ABS() definitions with a single one using typeof (if using gcc) to avoid multiple evaluations of the input expressions. Speex still uses its own as I didn't want to change this imported code too much.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22129 a1c6a512-1295-4272-9138-f99709370657
2009-08-03 01:38:58 +00:00
Nils Wallménius
65140a2cd5
Slight whitespace cleanup, add a const qualifier. No functional changes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22087 a1c6a512-1295-4272-9138-f99709370657
2009-07-30 13:52:11 +00:00
Michael Giacomelli
b957f7214b
Rearrange the MDCT library lookup tables so that codecs can access them. Access them in cook. Remove old cook trig tables. Replace old 32x16 bit fixed point multiply code with faster ASM ARM/Coldfire versions using full 32 bit precision. Improves performance signficantly on PP5024 (~200% realtime for a 64k file) while saving a lot of memory and improving accuracy.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21939 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 23:53:40 +00:00
Andrew Mahone
f35db90efa
Reorder some operands to increase frequency of multiply early termination on TDMI targets, reorder some operations to try to reduce stalls.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21834 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 04:50:02 +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
Maurus Cuelenaere
8d4d4610b6
* FS#10411 - Fixed point math code is bloated by Jeffrey Goode
...
* Set svn:keywords properties
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21701 a1c6a512-1295-4272-9138-f99709370657
2009-07-07 13:36:34 +00:00
Maurus Cuelenaere
802743a061
Take 2 at 'Consolidate all fixed point math routines in one library' (FS#10400) by Jeffrey Goode
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21664 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 18:06:07 +00:00
Maurus Cuelenaere
c3bc8fda80
Revert "Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode"
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21635 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 13:17:58 +00:00
Maurus Cuelenaere
4710a32800
Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21633 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 12:26:45 +00:00
Michael Giacomelli
5c404a02fb
Commited too much really this time.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20905 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 23:38:06 +00:00
Michael Giacomelli
9c43aaa41b
Actually remove the unneeded files in the last commit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20903 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 23:32:53 +00:00
Dave Hooper
67fb5415f7
Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20783 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 11:25:13 +00:00
Maurus Cuelenaere
17d9d80011
Fix red
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20777 a1c6a512-1295-4272-9138-f99709370657
2009-04-22 15:04:26 +00:00
Maurus Cuelenaere
c89ac3460a
Fix yellow
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20776 a1c6a512-1295-4272-9138-f99709370657
2009-04-22 14:48:07 +00:00
Maurus Cuelenaere
2995c2d265
Clean code a bit (no functional changes)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20715 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 14:34:49 +00:00
Maurus Cuelenaere
f3643181ae
Fix header
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20714 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 13:48:34 +00:00
Maurus Cuelenaere
66b078f643
Add setjmp implementation for MIPS targets from newlib
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20713 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 13:41:48 +00:00
Michael Giacomelli
9f49657c6a
Fix endianness defines in the mdctlib code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20279 a1c6a512-1295-4272-9138-f99709370657
2009-03-10 01:50:18 +00:00
Magnus Holmgren
f4515c3082
Add setjmp/longjmp for ARM and ColdFire to the codec lib, and use it in the Vorbis codec to better handle out of memory conditions (to exit rather than crash; the AAC codec could use it too). setjmp/longjmp comes from newlib 1.17.0 with a few minor changes (combine parts of some files, remove support for some architectures, change some ifdef's).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20235 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 12:48:58 +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
52320b83c0
Added missing dependencies for codeclib and pluginlib. This required renaming some files that have twins in other places.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19756 a1c6a512-1295-4272-9138-f99709370657
2009-01-12 21:56:46 +00:00