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