TMS470 C/C++ CODE GENERATION TOOLS
Release 2.58 August 2005


Thank you for choosing Texas Instruments software development tools.
It is our goal to provide you with the most useful and efficient
development tools from which to develop your applications around
Texas Instruments processors.  

================================================================================
Note: Details on various TMS470 compiler releases is also available online
at: ftp://ftp.ti.com/pub/private-cs/armcgt_releases/tms470_releases.html.
================================================================================


================================================================================
Table of Contents
================================================================================

1. New Features
2. Bug Fixes
3. Known Issues


================================================================================
1. New Features
================================================================================

1. New Features  
    a) Default DWARF2 Debug Support
    b) Integer Division With Constant Divisor
    c) The MUST_ITERATE Pragma
    d) The UNROLL Pragma
    e) New linker command file operator, palign
    f) Static template instantiation
    g) New --verbose switch to print banner 
    h) New --default_order linker switch 
    i) New --align_structs switch
    j) New --v5e switch for ARM v5 DSP instructions
2. Features added in release v2.30
    a) 64-Bit Integer Support
    b) Static Stack Depth Analysis
    c) Improved -mn Switch
    d) Branch Chaining 

Details can be found in the document docs/CGTNew.txt

Details on linker enhancements that have been added since release v2.20 that
are not described in the current CGT User's Guide are provided in the
docs/CGTLinker.txt document.


================================================================================
2. Bug Fixes
================================================================================

Details of bug fixes in this release, along with a complete defect history, can
be found in the docs/CGTDefectHistory.txt document.


================================================================================
3. Known Issues
================================================================================

1. NOTE: Version 2.58 linker contains a new default allocation algorithm.  This
new algorithm is a sized based algorithm, rather than following the order
output sections are listed in the SECTIONS directive.  For example, if your
linker command file contained:

SECTIONS
{
   .cinit : {} > ROM
   .const : {} > ROM
   .text  : {} > ROM
}

prior to 2.51, the order of the sections in ROM would be: .cinit, .const, then
.text.  Now, this order will be set by the size of the sections.  If a
specific order is required, you must use a GROUP directive:

SECTIONS
{
    GROUP
    {
       .cinit : {} > ROM
       .const : {} > ROM
       .text  : {} > ROM
    }
}

This default size algorithm will also affect any output section not listed
within the SECTIONS directive.

A shell switch has been added to revert to the old allocation order.  See
CGTNew.txt or CGTLinker.txt for details.

2. NOTE: Version 2.58 will generate DWARF2 debug by default.  Some debug 
directives are always generated, even if no -g switch is used.   The previous 
STABS debug can be generated with the -gt switch.  If no debug information is
desired, use the -gn switch.  This means there are DWARF2 debug directives in
the default RTS libraries.  See docs/CGTNew.txt for details.  There are now
RTS libraries included that were built with STABS debug, -gt switch.  These
are:

gt_libs/rts16_gt.lib
gt_libs/rts16e_gt.lib
gt_libs/rts32_gt.lib
gt_libs/rts32e_gt.lib

There are also RTS libraries included that were built with no debug, -gn switch.
These are:

nodebug_libs/rts16_nodebug.lib
nodebug_libs/rts16e_nodebug.lib
nodebug_libs/rts32_nodebug.lib
nodebug_libs/rts32e_nodebug.lib


3. Since version 2.58 will generate DWARF2 debug by default, there may be
issues if the compiler is copied into the TMS470\cgtools\bin directory of 
CCS 2.20 or CCS 2.21.  A dll is included in this release, btiarm.dll found in 
btiarm_2051.zip, that can replace the btiarm.dll in the same cgtools\bin
directory.  This dll will change the Project->Build Options dialog box such
that if a Debug configuration is chosen, the -gt switch will automatically
be used for that project.


4. C++ Templates and Program Level Optimization

Program Level Optimization, shell switch -pm, will not work with
C++ code that contains templates.

5. Bug SDSsq33479: There is a bug with the C/assembly interlisting tool, 
cl470.exe.  This tool is invoked when the shell tool is passed -s or -ss.  If a 
generated assembly line contains greater than 256 characters the clist470 will 
abnormally terminate.
