[gccsdk] Adapted DRender for more efficient /dev/dsp emulation with DigitalRenderer

Christopher Martin belles at internode.on.net
Sun Apr 22 08:38:25 PDT 2012


Hello,

Having now studied the /dev/dsp emulation in libunixlib, I have
adapted the DRender.s and DRender.h files included in the
DigitalRenderer sources to make the /dev/dsp emulation's calls to
DigitalRenderer much more efficient. All SWIs but one are called by
inline assembly, rather than going through __kernel_swi or __os_swi.
The one remaining SWI has an interface provided by an assembled
function.

I consider the work to be experimental but I have already used it to
rebuild FFplay and Wesnoth. Inline assembly can be a hairy beast so
there may be errors in code that sound/dsp.c doesn't use. I would
appreciate others casting an eye over it to look for problems.

The other issue is that I have not tried to rebuild sound/dsp.c and
sound/DRender.s using the libunixlib Makefile. Instead, I have a very
simple Makefile insdie the sound folder just for that purpose, and I
then use 'ar r ...' to place the two object files into libunixlib.
This is because I am working on a RISC OS machine rather than Linux
and so have not been able to run automake to generate a libunixlib
Makefile.

These are the files listed in my local repository:
*svn stat
?      sound/Makefile,fe1
A      sound/DRender.s
M      sound/dsp.c
A      sound/DRender.h
M      Makefile.am

I'm writing to ask if there is any interest in the work and, if so,
how best to make the files available for examination and testing.
-- 
Regards, Chris.




More information about the gcc mailing list