This file describes the implementation notes of the GNU C Compiler for
the Texas Instruments Floating Point Digital Signal Processor
families, TMS320C3x and TMS320C4x (including the C30, C31, C32, C40,
and C44 chips).


Currently, only two code variants are generated---those for the C3x
and C4x architectures.  Note that the new operand combinations for
parallel instructions, included in newer silicon revisions, are not
yet supported.  These should be trivial to add for someone with the
newer chips and the inclination.


While the generated assembly code is fairly similar to that recognised
by the TI assembler, there are a few differences (currently the machine
option -mti, designed to enfore compatibility, is not fully
implemented).  The major difference is the use of the ^ operator to
load the 16 MSBs of an address or constant for the C4x.


The generated assembly code requires the GNU assembler (GAS).  This is
not currently included as part of the binutils package, due to the
many hacks required to be compatible with TI's kludged COFF
implementation, and the binutils not being designed for 32-bit bytes.
Patches against binutils-2.7.2 can be obtained from
ftp://ongaonga.chch.cri.nz/pub/c4x.  This site also has patches for
the GNU debugger (GDB), incoporating a cycle accurate simulator that
can display profiles and histories of code execution, detailing
pipeline conflicts etc.


GCC can be configured as a cross compiler for both the C3x and C4x
architectures on the same system.  Use `configure --target=c4x' to
configure GCC for both the C3x and C4x.  Then use the -m30 option to
generate code for the C30 or -m40 (the default) for the C40.


Further installation notes and other optimization patches for GCC can
also be obtained from ftp://ongaonga.chch.cri.nz/pub/c4x.


A Majordomo mailing list, gcc_c40@atlantek.com.au, exists to discuss
related issues and suggestions for further optimizations.  To
subscribe send a message with `subscribe gcc_c40' in the body to
majordomo@atlantek.com.au.


Michael Hayes,  16 Sep 98
