1
0
Fork 0
forked from len0rd/rockbox
Commit graph

1603 commits

Author SHA1 Message Date
Jens Arnold
6d34e33b94 Speed up the predictor a little by using ldrd/strd on ARMv5+. This required shuffling around the register allocation somewhat. Performance on ARMv4 is unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19248 a1c6a512-1295-4272-9138-f99709370657
2008-11-27 20:52:23 +00:00
Jens Arnold
5b0d74a7d3 Get rid of unused return values, except the one from decode_chunk() which will be used in the dual core split.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19236 a1c6a512-1295-4272-9138-f99709370657
2008-11-26 18:01:18 +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
Jens Arnold
d7e4e54bcb Reorder instructions to avoid pipeline stalls on ARMv6 wherever possible (sometimes using different registers to allow this). Speeds up the predictor by almost 20% on ARMv6 (overall speedup for -c1000 is 5%), and might also help a bit on ARMv5. ARMv4 speed is unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19210 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 23:09:09 +00:00
Jens Arnold
3761c0108c Branch optimisation in both C (giving hints to gcc - verified using -fprofile-arcs and gcov) and asm files. Biggest effect on coldfire (-c1000: +8%, -c2000: +5%), but ARM also profits a bit (less than 1% on ARM7TDMI, around 1% on ARM1136).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19199 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:49 +00:00
Jens Arnold
66c0cf2eb1 Tweak the ARMv6 filter assembly a bit further.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19198 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:43 +00:00
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