Commit graph

16 commits

Author SHA1 Message Date
Rafaël Carré
45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be
modified if we are returning to a thumb function
Code running on ARMv4t should use the new ldrpc / ldmpc macros instead
of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc}
No modification on pure ARM builds and ARMv5+

Note: USE_THUMB is currently never defined, no targets can currently be
built with -mthumb, see FS#6734

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 04:41:36 +00:00
Michael Sevakis
565a863dd5 ARM DSP: Add assembly custom sound channel processing. 13% to 14% faster than currently-used default C code on ARMv4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25949 a1c6a512-1295-4272-9138-f99709370657
2010-05-11 12:37:49 +00:00
Michael Sevakis
81bfa137b6 ARM DSP: Get an instruction out of the crossfeed main loop and improve loads and interlocks for stacked vars.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25946 a1c6a512-1295-4272-9138-f99709370657
2010-05-11 10:22:23 +00:00
Michael Sevakis
51845b344b ARM DSP: Remove a couple comments that no longer apply.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25945 a1c6a512-1295-4272-9138-f99709370657
2010-05-11 09:30:30 +00:00
Michael Sevakis
1e3eec2d3d ARM DSP: fore some reason I neglected dsp_downsample completely. Do a small reordering.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25944 a1c6a512-1295-4272-9138-f99709370657
2010-05-11 09:08:26 +00:00
Michael Sevakis
ab4c86cbc6 ARM DSP: Make things a little more pipeline friendly. Reduce nonvolatile register stacking where possible. Routines now handle odd sample counts properly and will not over-write in that case. Remove a few pointless labels.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25943 a1c6a512-1295-4272-9138-f99709370657
2010-05-11 08:40:52 +00:00
Michael Sevakis
91bdc3ea90 Optimized DSP sample out functions for armv6. (For stereo output) ~9% faster than SVN asm and about 4% faster than SVN asm rearranged to observe pipeline hazards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25717 a1c6a512-1295-4272-9138-f99709370657
2010-04-25 20:04:47 +00:00
Andree Buschmann
6999e5debe Use r12 to save 1 register.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25597 a1c6a512-1295-4272-9138-f99709370657
2010-04-11 19:08:44 +00:00
Andree Buschmann
efb702dc9b Add arm assembler for dsp_apply_gain(). Speeds up this routine by 30-40% on PP502x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25596 a1c6a512-1295-4272-9138-f99709370657
2010-04-11 19:02:43 +00:00
Jens Arnold
02c031709c * ARM asm DSP and codec/plugin functions: Use r12 scratch register properly
* Fix saving another unused reg in dsp code
* Use less regs in the generic ARM mpegplayer adding idct pure DC case
* Fix ARMv6 mpegplayer adding idct using an unsaved register in pure DC case


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21803 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 13:14:35 +00:00
Steve Bavin
fb2380790e FS#8894 - Add time stretching feature to all SWCODEC targets - the current algorithm is best for spoken word.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21258 a1c6a512-1295-4272-9138-f99709370657
2009-06-12 07:20:50 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Andree Buschmann
fd052ec753 Commit FS#8750. Add ARM assembler for the dsp-functions channels_process_sound_chan_mono(), channels_process_sound_chan_karaoke(), sample_output_mono() and sample_output_stereo(). By measurement the speed up is ~75% for the first three functions and ~40% for sample_output_stereo(). Additionally avoid calling yield() to often in dsp.c -- it is now limited to once per tick.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16717 a1c6a512-1295-4272-9138-f99709370657
2008-03-19 13:55:53 +00:00
Thom Johansen
1b05ea8ffe ARM assembler for resampling. Should provide some gains, though not huge ones.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12732 a1c6a512-1295-4272-9138-f99709370657
2007-03-11 23:33:58 +00:00
Thom Johansen
9636c1b61e Adapt ARM crossfeed assembler to work like the Coldfire one. Remove SWITCHPARAM cruft as it's no longer needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12507 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 17:33:23 +00:00
Thom Johansen
56f2ca74ad Assembler optimised crossfeed routine for ARM. Performance improvement is more than double. Should work fine, but watch your ears nevertheless.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10608 a1c6a512-1295-4272-9138-f99709370657
2006-08-16 12:38:49 +00:00