SPNU151W January 1998 – March 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , C346BA02 , C348A01 , CS241C01-Q1 , CS241C05-Q1 , CS246C01-Q1 , CS348C02-Q1 , OMAP-L132 , OMAP-L137 , OMAP-L138 , S470AV336LYSQRB , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
The following table lists changes made to this document prior to changes to the document numbering format. The left column identifies the first version of this document in which that particular change appeared.
Version Added | Chapter | Location | Additions / Modifications / Deletions |
---|---|---|---|
SPNU151V | Linking | Section 4.3.5 | Clarified that either --rom_model or --ram_model is required if only the linker is being run, but --rom_model is the default if the compiler runs on C/C++ files on the same command line. |
SPNU151V | C/C++ Language | Section 5.11.22 | The
#pragma once is now documented for use
in header files. |
SPNU151V | Run-Time Environment | Section 6.10.3.1 | Clarified that zero initialization takes place only if the --rom_model linker option is used, not if the --ram_model option is used. |
SPNU151U | -- throughout -- | The default file extensions for object files created by the compiler have been changed in order to prevent conflicts when C and C++ files have the same names. Object files generated from C source files have the .c.obj extension. Object files generated from C++ source files have the .cpp.obj extension. | |
SPNU151T | Using the Compiler | Section 2.3.1 | Added the --emit_references:file linker option. |
SPNU151T | Using the Compiler | Section 2.5.1 | Documented that C standard macros such as __STDC_VERSION__ are supported. |
SPNU151T | C/C++ Language | Section 5.11 | Added documentation for the CODE_ALIGN pragma. |
SPNU151T | C/C++ Language | Section 5.11.19 | Clarify section placement for the NOINIT and PERSISTENT pragmas. |
SPNU151T | C/C++ Language | Section 5.14 | Corrected syntax for the _norm intrinsic. |
SPNU151T | C/C++ Language | Section 5.16.1 | Updated list of C99 non-supported run-time functions. |
SPNU151T | C/C++ Language | Section 5.17.2 | Added documentation for the aligned, calls, naked, and weak function attributes. |
SPNU151T | C/C++ Language | Section 5.17.4 | Added documentation for the location and packed variable attributes. |
SPNU151T | Run-Time Support Functions | DEV_lseek topic | Corrected syntax documented for DEV_lseek function. |
SPNU151S | Introduction, Using the Compiler, C/C++ Language |
Section 1.3, Section 2.3, Section 5.1, and Section 5.16.2 | Added support for C11. |
SPNU151S | Using the Compiler | Section 2.3.1 | Added the --ecc=on linker option, which enables ECC generation. Note that ECC generation is now off by default. |
SPNU151S | Using the Compiler | Section 2.5.1 | The __TI_STRICT_ANSI_MODE__ and __TI_STRICT_FP_MODE__ macros are defined as 0 if their conditions are false. |
SPNU151S | Using the
Compiler, C/C++ Language |
Section 2.11 and Section 5.11 | Revised the section on inline function expansion and its subsections to include new pragmas and changes to the compilers decision-making about what functions to inline. The FORCEINLINE, FORCEINLINE_RECURSIVE, and NOINLINE pragmas have been added. |
SPNU151S | C/C++ Language | Section 5.2 | C++11 features related to atomics are now supported. In addition, removed several C++ features from the exception list because they have been supported for several releases. |
SPNU151S | C/C++ Language | Section 5.6 | Added information about character sets and file encoding. |
SPNU151S | C/C++ Language | Section 5.14 | Corrected syntax for _smac intrinsic. |
SPNU151S | C/C++ Language | Section 5.17.2 and Section 5.17.4 | Added "retain" as a function attribute and variable attribute. |
SPNU151S | C/C++ Language | Section 5.17.6 | Clarified the availability of the __builtin_sqrt() and __builtin_sqrtf() functions. |
SPNU151R | Using the
Compiler, C/C++ Language |
Section 2.3 and Section 5.2 | The compiler now follows the C++14 standard. |
SPNU151R | C/C++ Language | Section 5.17 | The compiler now supports several Clang __has_ macro extensions. |
SPNU151R | C/C++ Language | Section 5.17.1 | The wrapper header file GCC extension (#include_next) is now supported. |
SPNU151Q | Using the
Compiler, C/C++ Language |
Table 2-31, Section 5.1, Section 5.14, Section 5.17.2 | ARM C Language Extensions (ACLE) are supported. |
SPNU151Q | Using the Compiler | Section 2.14 | Updated the list of settings for the --float_support option. |
SPNU151Q | C/C++ Language | Section 5.2 | Preliminary changes have been made in order to support C++14 in a future release. These changes may cause linktime errors. Recompile object files to resolve these errors. |
SPNU151Q | C/C++ Language | Section 5.7.1 | Clarified exceptions to const data storage set by the const keyword. |
SPNU151Q | C/C++ Language | Section 5.14 | Remove incorrect third parameter for the _smuad, _smuadx, _smusd, and _smusdx intrinsics. |
SPNU151P | Optimization | Section 3.7.1.4 | Corrected error in command to process the profile data. |
SPNU151O | Using the
Compiler, C/C++ Language |
Section 2.3.3 | Revised to state that --check_misra option is required even if the CHECK_MISRA pragma is used. |
SPNU151O | Using the
Compiler, C/C++ Language, and Run-Time Support Functions |
Section 2.5.1, Section 5.16, and Section 7.1.1 | _AEABI_PORTABILITY_LEVEL can be defined to enable full object file portability when headers files are included. |
SPNU151O | Using the Compiler | Section 2.10 | Corrected the document to describe the ---gen_preprocessor_listing option. The name --gen_parser_listing was incorrect. |
SPNU151N | Optimization | Section 3.7.3 | Corrected function names for _TI_start_pprof_collection() and _TI_stop_pprof_collection(). |
SPNU151M | Using the Compiler | Section 2.3 | The default for --cinit_compression and --copy_compression has been changed from RLE to LZSS. |
SPNU151M | Using the Compiler | -- | Several compiler options have been deprecated, removed, or renamed. The compiler continues to accept some of the deprecated options, but they are not recommended for use. |
SPNU151M | Using the Compiler | Section 2.5.1 | The __little_endian__ and __big_endian__ macros are preceded by two underscores. |
SPNU151M | C/C++ Language | Section 5.14 | The following intrinsics are supported for Cortex-M3: __ldrex, __ldrexb, __ldrexh, __strex, __strexb, and __strexh. |
SPNU151M | Run-Time Environment | Section 6.8.1 | The _enable_interrupts, _enable_IRQ, _enable_FIQ, _disable_interrupts, _disable_IRQ, and _disable_FIQ intrinsics for Cortex-R4 and Cortex-A8 now use the CPSIE and CPSID instructions. |
SPNU151L | Using the Compiler | Section 2.3 and Section 4.2.2 | The --gen_data_subsections option has been added. |
SPNU151L | Using the Compiler | Section 2.3.5 | The --symdebug:dwarf_version option can be set to 4 to enable the use of DWARF debugging format version 4. |
SPNU151L | Optimization | Section 3.7 and Section 3.8 | Feedback directed optimization is described. This technique can be used for code coverage analysis. |
SPNU151L | C/C++ Language | Section 5.11.1 | A CALLS pragma has been added to specify a set of functions that can be called indirectly from a specified calling function. Using this pragma allows such indirect calls to be included in the calculation of a functions' inclusive stack size. |
SPNU151L | C/C++ Language | Section 5.14 | The following intrinsics have been added to the documentation: __MCR, __MRC. |
SPNU151L | Run-Time Environment | Section 6.10.1 | Additional boot hook functions are available. These can be customized for use during system initialization. |
SPNU151K | Introduction | Section 1.4 | The COFF object
file format and the TI_ARM9_ABI and TIARM ABIs are
no longer supported. The ARM Code Generation Tools
now support only the Embedded Application Binary
Interface (EABI) ABI, which works only with object
files that use the ELF object file format and the
DWARF debug format. Sections of this document that
referred to the COFF format have been removed or
simplified. If you would like to produce COFF
output files, please use v5.2 of the ARM Code
Generation Tools and refer to SPNU151J for
documentation. The --abi=coff, --symdebug:profile_coff, --no_sym_merge, and --diable_clink options have been deprecated. |
SPNU151K | Using the Compiler | Section 2.3.4 | The --ramfunc option has been added. If set, this option places all functions in RAM. |
SPNU151K | C/C++ Language | Section 5.14 | The following intrinsics have been added to the documentation: __nop, __sqrt, __sqrtf, __wfi, __wfe |
SPNU151K | C/C++ Language | Section 5.17.2 | The ramfunc function attribute has been added. It specifies that a function should be placed in RAM. |
SPNU151K | Run-Time Support Functions | Section 7.1.2 | Added information about header file extensions. |
SPNU151J | Introduction | Section 1.3 | Added support for C99 and C++03. |
SPNU151J | Using the Compiler | Table 2-1 | Added --endian=[big | little] option. |
SPNU151J | Using the Compiler | Table 2-6, Section 2.7, and Section 2.3.3 | Added the --advice:power and --advice:power_severity options for use with the ULP Advisor. |
SPNU151J | Using the Compiler | Table 2-8 | Added support for C99 and C++03. The -gcc option has been deprecated. The --relaxed_ansi option is now the default. |
SPNU151J | Using the Compiler | Table 2-8 | Removed documentation of precompiled headers, which have been deprecated. |
SPNU151J | Using the Compiler | Table 2-11 and Section 2.7.1 | Added --section_sizes option for diagnostic reporting of section sizes. |
SPNU151J | Using the Compiler | Table 2-28 and Section 4.3.3 | Added the –cinit_hold_wdt linker option. |
SPNU151J | Using the Compiler | Section 2.5.1 | Added __TI_ ARM_V7M4__ predefined macro name for Cortex-M4. |
SPNU151J | Using the Compiler | Section 2.5.3 | Documented that the #warning and #warn preprocessor directives are supported. |
SPNU151J | Using the Compiler | Section 2.6 | Added section on techniques for passing arguments to main(). |
SPNU151J | Using the Compiler | Section 2.11 | Documented that the inline keyword is now enabled in all modes except C89 strict ANSI mode. |
SPNU151J | C/C++ Language | Section 5.1.1 | Added section documenting implementation-defined behavior. |
SPNU151J | C/C++ Language | Section 5.4 | Added support for the ULP Advisor |
SPNU151J | C/C++ Language | Section 5.5.1 | Added documentation on the size of enum types. |
SPNU151J | C/C++ Language | Section 5.11.3, Section 5.11.12, Section 5.11.13, Section 5.11.19, and Section 5.11.26 | Added the CHECK_ULP, FUNC_ALWAYS_INLINE, FUNC_CANNOT_INLINE, NOINIT, PERSISTENT, and RESET_ULP pragmas. |
SPNU151J | C/C++ Language | Section 5.11.16, Section 5.11.27, and Section 5.17.2 | Added C++ syntax for the INTERRUPT and RETAIN pragmas. Also removed unnecessary semicolons from #pragma syntax specifications. Also the GCC interrupt and alias function attributes are now supported. |
SPNU151J | C/C++ Language | Section 5.11.8 | Added the diag_push and diag_pop diagnostic message pragmas. |
SPNU151J | C/C++ Language | Section 5.14 | Added __delay_cycles, __get_PRIMASK, __set_PRIMASK, __get_MSP, and __set_MSP intrinsics. |
SPNU151J | C/C++ Language | Section 5.14 | Corrected arguments for smlalbb, smlalbt, smlaltb, smlaltt, smlabb, smlabt, smlatb, and smlatt intrinsics. |
SPNU151J | C/C++ Language | Section 5.16, Section 5.16.1, and Section 5.16.3 | Added support for C99 and C++03. The --relaxed_ansi option is now the default and --strict_ansi is the other option; "normal mode" for standards violation strictness is no longer available. |
SPNU151J | Run-Time Environment | Section 6.5 | Added reference to section on accessing linker symbols in C and C++ in the Assembly Language Tools User's Guide. |
SPNU151J | Run-Time Environment | Section 6.7.5 | Added information about allowable return values from SWI handlers. |
SPNU151J | Run-Time Environment | Section 6.8.1 | Added instructions for several device families for _disable_interrupts, _enable_interrupts, and _restore_interrupts intrinsics. Added Cortex-M support for _enable_IRQ, _disable_IRQ, and _set_interrupt_priority intrinsics. |
SPNU151J | Run-Time Environment | Section 6.10.1 | Added support for system pre-initialization. |
SPNU151J | Run-Time Support Functions | Section 7.1.3 | RTS source code is no longer provided in a rtssrc.zip file. Instead, it is located in separate files in the lib/src subdirectory of the compiler installation. |
SPNU151J | C++ Name Demangler | Section 8.1 | Corrected information about name demangler options. |
SPNU151J | C++ Name Demangler | Section 8.2 | Corrected examples of resulting assembly output. |