Commit graph

7 commits

Author SHA1 Message Date
Andrew Mahone
8ed7bda64c Move udiv32_arm.S into libdemac, as this divider is specialized for the APE codec and an optimized divider is already provided for general use in codeclib.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24506 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 05:49:37 +00:00
Jens Arnold
b2ffb3e08f Reduce reciprocal table size a bit on Nano 2nd Gen as well (fix red).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24474 a1c6a512-1295-4272-9138-f99709370657
2010-02-02 23:06:28 +00:00
Jens Arnold
9f6586698a APE codec: Speed up decoding of -c2000 and higher on ARMv4 and coldfire by fusing vector math for the filters. Speedup is roughly 3.5% for -c2000, 8% for -c3000 and 12% for -c4000. To be extended to other architectures.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24473 a1c6a512-1295-4272-9138-f99709370657
2010-02-02 22:50:21 +00:00
Andrew Mahone
436f4d3a20 Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code out of IRAM for sizes that aren't near realtime and extend udiv32_arm reciprocal table.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24376 a1c6a512-1295-4272-9138-f99709370657
2010-01-30 02:20:54 +00:00
Andrew Mahone
2347a7dc65 Small fix for ARMv5e/v6 APE divider, correct large-divisor path and remove specialized version of it for small dividend, as the test and branch can't be fit into delay slots on that path.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24360 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 09:04:38 +00:00
Andrew Mahone
a6bd83a315 Fix red: smlal operand ordering in udiv32_arm.S
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24355 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 02:40:33 +00:00
Andrew Mahone
e76f30a57c Improvements to specialized dividers for APE codec:
* Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S.
* On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200.
* Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 02:28:52 +00:00