
           GCC5616 -- GCC Compiler for the DSP5616 series
                           Version 0.2

This package contains a GCC machine description for the Motorola DSP5616
series of processors (including the DSP56116 and the DSP56156).  Using the
machine description files, a GCC compiler can be created which will
generate assembly code suitable for processing by Motorola's assembler.

The machine description is based upon version 1.40 of GCC.  It has not been
tried with any other version of GCC.  If you do not have GCC 1.40, I
believe that it is available from many different sites.  Two that I know of
are anonymous FTP sites: crl.dec.com and prep.ai.mit.edu.  The latter
address has a substantial list of where you can obtain GNU software.

Before going any further, please understand that the GCC5616 compiler is
limited in some ways and requires some in-depth understanding of its
implementation.  I urge you to read the accompanying documentation
thoroughly before attempting to write code.  This is a "hacker's compiler",
not a well-polished product.

My previous offering included a machine description for the DSP56K series.
Motorola has since provided their own compilers which are better tested and
supported. The compiler I am providing is meant to fill the gap in
compilers for the DSP5616 series, at least until Motorola comes up with
their own.

Here are some of the limitations of the GCC5616 compiler:

* The native modes of the processor are supported - and that is all.
Most notably, floating point numbers are restricted to the range
[-1,1) (I'm not kidding) and there is no support for unsigned numbers
(I'm still not kidding).  If you write 'float a=2.0' you will get a
compiler error.  If you have two variables declared as 'unsigned'
named 'i' and 'j', the comparison (i > j) will perform a signed test.

* There is no advantage taken of the parallel move capability of the
processor.

* There is no attempt made to reorder instructions to avoid pipeline
delays.  The assembler must be executed with an option that instructs
it to insert 'nop's when necessary.

* The compiler has been tested "in the field" only. I do not have time
or resources to subject the compiler to thorough testing.

Having said all of the above, let me say that I *have* found the compiler
useful.  I've noticed that my DSP applications are about 10% hard-core DSP
and 90% support code.  The 10% is written in assembly language, of course.
The remaining 90% can be written in C.  The reduction in development and
maintenance time is dramatic. The compiler has been in use by myself and
others in my department for about six months. Apart from the documented
bugs, we have found the compiler to be quite stable.

I am open to comments and suggestions on improving the compiler.  I can be
reached at 'asterian@bnr.ca' or post to the 'comp.dsp' newsgroup, which I
read regularly. (Note that my e-mail address is only valid until Aug. 20,
1992).

The full documentation (relatively speaking) for the compiler is contained
in the file 'DOC.5616'. The file named 'BUGS' contains a list of documented
but I-don't-have-time-to-fix-it bugs that you should watch out for.
The 'stuff' directory in this distribution contains miscellaneous
files of interest which you can use to get you going on the flavour of
the compiler.

As always, bug reports are welcome (if only to document them).

Best of luck!

Andrew Sterian

