RELEASE NOTES ============= Product : GNU C Compiler Toolkit for ARC Processors MileStone : First support release of the upgraded toolchain Version : GNU binutils 2.15 codito-20050725-release GCC 3.4.4 codito 20050725 [ derived from FSF snapshot on 26th Jan 2005 ] Date : July 25 2005 Table of Contents ----------------- 1. Overview 2. Features Supported 3. Major changes in this release 4. Known Limitations and Defects 5. Contact Information 6. Reference 1. Overview ------------ This is the first support release of the upgraded GNU Tools for the ARC, consisting of feature enhancements, clean-ups and bug-fixes. 2. Features Supported ---------------------- 2.1 Features of support release #1 (July 25 2005) ------------------------------------------------- * Handling of extension instructions in the binutils rewritten. * New flags added to the compiler and binutils (See section 3 below). * Bug #1366 in the generation of min instructions fixed. * Bug #1307 in the generation of multiple shifts for ARCtangent-A4 fixed. * Bug #1378 in the costs of multiply instructions fixed. * Bug #1310 with generation of bbit instructions fixed. * Bug #1301 with spurious add2 generation in A4 code fixed. * Bugs #1284, #1294 fixed, allowing brk generation with builtins for all cores. * Bug #1011 with bic instruction generation fixed. * Bug #1293 fixed, disallowing generation of divaw instruction generation and support for the same in binutils, for ARC700 base case. * Bug #1309 with the support for lsl instructions in the assembler fixed. * Miscellaneous code clean-ups. 2.2 Features of the first upgrade release (May 23 2005) ------------------------------------------------------- * Improved ABI compatibility * Support for extension instructions for ARCtangent-A5, ARC600 and ARC700 processors * Support for builtins (compiler intrinsics) as an interface for generating assembly instructions. * Better support for DWARF-2 debug information generation. * newlib is now built for big-endian targets as well. * Numerous bug-fixes and cleanups. 3. Major back-end changes in this release ----------------------------------------- * The handling of extension instructions has been rewritten. Now, the extension instructions are read in by the assembler at run-time from the file arcextlib.s installed at $INSTALLPREFIX/extlib/. The user can therefore, change the definitions of the extension instructions and registers and the tools dynamically understand the changes and generate the appropriate code. * Using extension core registers requires the .extRegister directive in the assembler sources. * The assembler no longer understands the extension instructions for any architecture variants by default, and gives out an error messsage. The appropriate command-line switches have been added to the assembler for the same (ref. ARC GNU Tools Reference Manual). e.g. For using the norm instruction in ARCtangent-A5 assembly code, the switch -mnorm needs to be passed to gas. * The compiler and assembler assume the ARC700 multiplier extension to be present by default. To disable the instruction, the command-line switch -mno-mpy needs to be passed. * The ARC700 mpylo and mpyhi mnemonics are no longer supported. Instead use the mnemonics mpy and mpyh for the same purpose. This change is to bring the tools in line with the ARCompact ISA programmers guide. (Building the linux kernel for ARC700 requires a small change in delay.h which is available as a separate patch set.) * The following command-line switches have been added: a) Compiler switches: + -mno-mpy + -mEA + -mmin_max b) Assembler switches + -mnorm + -mswap + -mmul64 + -mEA + -mmin_max + -mbarrel_shifter + -mno-mpy NOTE: When given to the compiler driver (i.e. arc-elf32-gcc), these switches get passed to the assembler, and therefore need not be specified separately on the command-line as assembler switches also. i.e. Adding -Wa,-mnorm to the command arc-elf32-gcc -mnorm ... is redundant. For further details about these flags, please refer to the ARC GNU Tools Reference Manual provided with this release. For the list of changes since the GCC-2.95.3 based release, see the release notes for the first release of the upgraded toolchain. 4. Known Limitations and Defects -------------------------------- * Position Independent Code generation support is only available for the ARC700 processor. 5. Contact Information ---------------------- In case of any defects please contact arc-support@codito.com. If you have a support contract, please use the support site at http://support.codito.com. 6. References ------------- * ARC700 ISA Reference Manual * ARC GNU Tools User Guide * Sys V ABI Extension for ELF for the ARC Tools Team Codito Technologies