Jens Arnold
|
a29b659758
|
Assembler optimised mono predictor for ARM. Speedup for -c1000 mono is ~5% on PP, ~8% on Gigabeat S (less for higher compression levels). Also fix some overlooked comments in the stereo predictor.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19375 a1c6a512-1295-4272-9138-f99709370657
|
2008-12-09 23:20:59 +00:00 |
|
Jens Arnold
|
113c285045
|
On ARM9TDMI (e.g. Gigabeat F) it's faster to use a ldr/str pair than add+ldmia/stmia for 2 registers. On ARM7TDMI a str pair is equally fast, so go for the simpler macro and use it for all ARMv4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19250 a1c6a512-1295-4272-9138-f99709370657
|
2008-11-27 22:07:46 +00:00 |
|
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
|
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
|
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
|
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 |
|
Dave Chapman
|
283738086d
|
Oops, forgot to set keywords prop
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13627 a1c6a512-1295-4272-9138-f99709370657
|
2007-06-13 22:03:28 +00:00 |
|
Dave Chapman
|
6b713820c1
|
ARM assembler predictor decoding function. This increases my -c1000 test track from around 94% realtime on an ipod to around 104% realtime, but yields only a tiny speedup (453% to 455%) on the Gigabeat. Including this optimisation, total decoding time for my 245.70s -c1000 test track on an ipod is 236.06s, with the predictor decoding taking 51.40s of that time - meaning the predictor decoding is only about 22% of the total decoding time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13626 a1c6a512-1295-4272-9138-f99709370657
|
2007-06-13 22:02:34 +00:00 |
|