Commit graph

11 commits

Author SHA1 Message Date
Andree Buschmann
6805448195 Correction to clobber lists of several codec's inline assembly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26376 a1c6a512-1295-4272-9138-f99709370657
2010-05-29 15:00:10 +00:00
Jens Arnold
0030ae28b5 Get rid of .rept in inline asm() blocks where possible. Using .rept causes gcc to wrongly estimate the size of the asm(), leading to (potential) compilation problems. This is necessary for the upcoming restructuring, and should fix ARMv6+ sim builds as well. No functional change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25004 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 20:52:02 +00:00
Jens Arnold
1cc4bd8f86 APE: Fused vector math for the filters on ARMv6. Speedup is ~2.5% for -c2000, ~7% for -c3000 and higher.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24569 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 21:59:24 +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
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
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
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