Nils Wallménius
95cf600b6c
Macros should be ALL CAPS, so rename (un)likely() to (UN)LIKELY()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19181 a1c6a512-1295-4272-9138-f99709370657
2008-11-22 16:56:20 +00:00
Nils Wallménius
1284c127f8
Introduce likely() and unlikely() macros, use to give gcc hints about which branch is likely to be taken in a conditional, use them in the midi player for a small speedup, use instead of similar EXPECT macros in tremor and use in mpegplayer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19162 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 20:20:43 +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
4846b30607
codec.link must be created with -DCODEC
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19155 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 15:54:47 +00:00
Björn Stenberg
d273f663a1
Make sure codec directory exists before creating link file.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19151 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 13:45:57 +00:00
Björn Stenberg
8ce3556236
Bug fix again. Moved cp outside of $(shell) to force make to run it sequentially.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19149 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:44:49 +00:00
Björn Stenberg
d96ce0a87d
Bug fix for previous bug fix. Too much copy/paste.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19148 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:17:43 +00:00
Björn Stenberg
838c74f79d
Bug fix for simulator: Plugins and codecs were objcopied isntead of left as ELF.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19147 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:09:36 +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
Jens Arnold
2a5053f58c
Several tweaks and cleanups: * Use .rept instead of repeated macros for repeating blocks. * Use MUL (variant) instead of MLA (variant) in the first step of the ARM scalarproduct() if there's no loop. * Unroll ARM assembler functions to 32 where not already done, plus the generic scalarproduct().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19144 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 21:31:33 +00:00
Jens Arnold
77934cbc96
Compile-time choice between 16 bit and 32 bit integers for the filters. 32 bit filters are faster on ARMv4 (with assembler code), so use them there. Nice speedup on PP and Gigabeat F/X.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19140 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 00:34:48 +00:00
Jens Arnold
1b14167861
Centralise compile-time configuration.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19121 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:49:37 +00:00
Jens Arnold
66ff812c4a
Make it compile again on linux...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19120 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:44:59 +00:00
Jens Arnold
dfafd67948
Make the standalone decoder actually work on Windows (need to open the output file in binary mode).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19119 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:30:02 +00:00
Jens Arnold
bd49ec97b2
Make the standalone decoder build on cygwin.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19117 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:59:03 +00:00
Jens Arnold
b5c0afc442
Move the contents of rangecoding.h into entropy.c, and remove the former. It was only used there, and defined some variables in the .h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19116 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:58:15 +00:00
Jens Arnold
5ba11af855
Avoid unnecessary register copies on ARMv5.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19112 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 10:12:38 +00:00
Dave Chapman
3e8a2bfa12
Make the standalone demac program compile again
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19107 a1c6a512-1295-4272-9138-f99709370657
2008-11-15 00:35:07 +00:00
Jens Arnold
9a0224fd28
Fix comments.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19102 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:20:25 +00:00
Jens Arnold
60e16e8e7a
Tiny speedup by simplifying the filter wrap check.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19101 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:16:27 +00:00
Jens Arnold
1600e4918e
Tiny performance improvement for the (not yet usable) compression levels >= -c2000 on ARM7TDMI, utilizing the multiplier's early termination.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19099 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 09:18:36 +00:00
Jens Arnold
545b51e2e4
ARMv4 unsigned integer division: Using an overflow-safe comparison method in the main calculation allows to put back the 1.5 cyle (average) optimisation. Shaved off another instruction, as we don't need the remainder. * Use the very efficient ffs algorithm from ffs-arm.S for dividing by a power of 2.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19032 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 21:21:33 +00:00
Nils Wallménius
24f551bc75
Correct a comment and police comment style, no functional change
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19030 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 18:49:11 +00:00
Björn Stenberg
5791d1c658
Re-added libspc which got dropped in a black hole.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19019 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 14:38:14 +00:00
Björn Stenberg
45bd7e0246
Codec lib directories renamed, except for demac.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19018 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 13:30:58 +00:00
Björn Stenberg
7ec9ceeaaa
Trimmed off redundant dependencies.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19017 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 12:14:06 +00:00
Björn Stenberg
0a8879b438
Added libcodec.a as dependency for all codecs.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19014 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 10:29:05 +00:00
Jens Arnold
0eb6ae938e
This optimisation breaks for very large divisors (MSB set), so remove it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19012 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 07:36:39 +00:00
Jens Arnold
0711c795e6
Set missing SVN properties.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19010 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 00:13:36 +00:00
Jens Arnold
fe04e40be7
Further optimised (vs. libgcc) unsigned 32 bit division for ARMv4 (based on the ARMv5(+) version from libgcc), in IRAM on PP for better performance on PP5002, and put into the codeclib for possible reuse. APE -c1000 is now usable on both PP502x and PP5002 (~138% realtime, they're on par now). Gigabeat F/X should also see an APE speedup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19009 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 00:10:05 +00:00
Jens Arnold
7a835ee0c6
Some entropy decoder tweaks. Also removed unnecessary 'tmp' variables.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19008 a1c6a512-1295-4272-9138-f99709370657
2008-11-04 23:46:04 +00:00
Michael Sevakis
effceea229
Remove the event object in the kernel since it's rather extraneous at the moment. This makes the codecs and the plugins incompatible, so update fully.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18867 a1c6a512-1295-4272-9138-f99709370657
2008-10-23 13:13:00 +00:00
Nils Wallménius
2f50cd58b9
Codec memory reorganization
...
Based on a patch by Tomasz Malesinski
* Merge Codec buffer and Malloc buffer into one large buffer.
* The new merged buffer is now 1MB on targets with lots of memory.
* Renamed codec_get_memory to codec_get_buffer and made it behave more.
like plugin_get_buffer.
* Bumped Codec api and min api versions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18834 a1c6a512-1295-4272-9138-f99709370657
2008-10-19 12:35:53 +00:00
Björn Stenberg
51b45d5602
Split id3.c/h into metadata.c/h and metadata/mp3.c. Updated all references. Moved mp3data.c/h from firmware to apps.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18814 a1c6a512-1295-4272-9138-f99709370657
2008-10-15 06:38:51 +00:00
Michael Giacomelli
1620d1fd03
Correct poor assumption on my part that WMA frames are 2048 samples long. Fixed problems with sample rates < 44.1khz. Fixes FS#9242 and FS#9439.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18805 a1c6a512-1295-4272-9138-f99709370657
2008-10-14 01:41:26 +00:00
Peter D'Hoye
528fe442fc
New recording setting to configure how mono recordings are made. Previously, this was always L+R, which was kinda silly if your signal was on L only. This setting allows for L, R or L+R. SWCODEC only for now, to be added for HWCODEC (although that will only be L and L+R probably)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18745 a1c6a512-1295-4272-9138-f99709370657
2008-10-08 22:18:16 +00:00
Jens Arnold
dd7cacdc88
Another minor improvement: better pipelining and one less register used in vector addition/ subtraction.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18739 a1c6a512-1295-4272-9138-f99709370657
2008-10-07 20:52:42 +00:00
Jens Arnold
6b84f60046
APE: Further ARMv6 filter optimisations: Save 4 'ror's per round by utilising the shift feature of the 'pack halfword' instructions in the unaligned vector addition/ subtraction, better pipelining in the aligned scalarproduct(), and a new method to calculate the unaligned scalarproduct().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18736 a1c6a512-1295-4272-9138-f99709370657
2008-10-07 19:40:17 +00:00
Jens Arnold
6219f4c862
Fix warnings on non-arm targets.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18702 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 21:52:47 +00:00
Jens Arnold
d1b19be423
Various speedups: (1) Put actual decoding functions into IRAM on PP5002. (2) Put the insane filter buffer into IRAM on coldfire and PP502x (just for completeness, as long as there's no better use). (3) Use the ARMv6 'ssat' instruction for saturation on Gigabeat S.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18701 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 21:40:32 +00:00
Jens Arnold
66fe9a462c
Speed up decoding on Gigabeat F/X and S by lowering BLOCKS_PER_LOOP. This helps keeping things in the (L1) cache (except for -c5000).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18700 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 16:34:25 +00:00
Jens Arnold
5d29f5188f
Put the rangecoder struct into IRAM for a nice speedup on coldfire.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18699 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 15:54:34 +00:00
Jens Arnold
d456460707
Further speedup for ARMv6 by better pipelining in scalarproduct().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18697 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 12:30:18 +00:00
Jens Arnold
67554591d9
Fix static noise on armv6.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18694 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 10:09:57 +00:00
Jens Arnold
46bf6bd493
Add preliminary ARMv5te optimisations (verified working, but can probably be sped up further), and fix a comment in the ARMv6 code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18693 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 09:33:36 +00:00
Jens Arnold
6fcf2765dd
Add armv6 specific asm code for the APE filters, speeding up -c2000..-c5000 a bit on Gigabeat S.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18692 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 08:54:34 +00:00
Michael Sevakis
2041fed03a
Opening function brace style police.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18574 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 09:23:32 +00:00
Michael Sevakis
5c903724fb
Simplify synchronizaton for MPA codec and make it fully atomic, let synth thread exist for life of codec, do a bit of cleanup and use number of cores do determine if it is compiled as multithread instead of CPU type.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18573 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 08:09:04 +00:00
Michael Giacomelli
9bc16e491d
Add simple ASMed fixed point multiply functions for ARM to AC3. Gives a 38% speed up on my one sample with a Sansa.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18570 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 00:51:22 +00:00
Dave Chapman
726a63f309
Correct version of memory sizes in config-logikdax.h (previous values were just experimental and should not have been committed). We also need to remove two more codecs for this codec buffer size (128KB). The m200 and DAX builds now actually build.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18568 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 19:38:28 +00:00