1This file describes the implementation notes of the GNU C Compiler for
2the Texas Instruments Floating Point Digital Signal Processor
3families, TMS320C3x and TMS320C4x (including the C30, C31, C32, C40,
4and C44 chips).
5
6
7Currently, only two code variants are generated---those for the C3x
8and C4x architectures.  Note that the new operand combinations for
9parallel instructions, included in newer silicon revisions, are not
10yet supported.  These should be trivial to add for someone with the
11newer chips and the inclination.
12
13
14While the generated assembly code is fairly similar to that recognised
15by the TI assembler, there are a few differences (currently the machine
16option -mti, designed to enfore compatibility, is not fully
17implemented).  The major difference is the use of the ^ operator to
18load the 16 MSBs of an address or constant for the C4x.
19
20
21The generated assembly code requires the GNU assembler (GAS).  This is
22not currently included as part of the binutils package, due to the
23many hacks required to be compatible with TI's kludged COFF
24implementation, and the binutils not being designed for 32-bit bytes.
25Patches against binutils-2.7.2 can be obtained from
26http://www.elec.canterbury.ac.nz/c4x.  This site also has patches for
27the GNU debugger (GDB), incoporating a cycle accurate simulator that
28can display profiles and histories of code execution, detailing
29pipeline conflicts etc.
30
31
32GCC can be configured as a cross compiler for both the C3x and C4x
33architectures on the same system.  Use `configure --target=c4x' to
34configure GCC for both the C3x and C4x.  Then use the -m30 option to
35generate code for the C30 or -m40 (the default) for the C40.
36
37
38Further installation notes and other optimization patches for the C4x
39target can also be obtained from http://www.elec.canterbury.ac.nz/c4x.
40
41
42A Majordomo mailing list, gcc_c40@atlantek.com.au, exists to discuss
43related issues and suggestions for further optimizations.  To
44subscribe send a message with `subscribe gcc_c40' in the body to
45majordomo@atlantek.com.au.
46
47
48Michael Hayes,  26 Nov 98
49