C/C++ Development Suite
Login
Introduction
Summary of changes from 5.54 to 5.55
Summary of changes up to 5.60
Summary of changes from 5.61 to 5.64
Halfword memory access
Packed structs
Inline assembler
C99 pragmas
Constant data
Global data controls
New/changed options

Downloads
Downloads Year 2

   

Summary of changes from 5.54 to 5.57

Summary of changes from 5.54 to 5.55

  • Added support for __packed structures and pointers.
  • Inline assembler (as per ARM ADS).
  • Added Thumb interworking (-APCS /inter).
  • int f() { } is now correctly treated as an old-style function - use int f(void) { } instead.
  • Improved error reporting for function arguments.
  • C99 pragmas added
  • C99 concatenation of wide and normal string literals supported.
  • Support for LDRH etc added.
  • -Otime and -Ospace now have more effect.
  • CSE optimises long long expressions.
  • Optimisation of static integer and floating const variables.
  • long long shifts by constant much improved.
  • All long long multiplies will now be inlined (if -cpu 3M or later and -Otime). Can also generate SMLAL and UMLAL.
  • ARMv5 BLX instruction used for faster function pointer calls.
  • Other more complex function pointer forms (such as MOV lr,pc; LDR pc,xxx) reinstated; these had been disabled at some point between 5.02 and 5.54 as a bug workaround.
  • Very slow CSE analysis of complex functions (eg various cyphers) fixed.
  • Header file guard #defines interpreted and handled internally (a speed optimisation which saves having to reload header files).
  • Improved compile-time evaluation of floating arithmetic.
  • Able to inline more functions. Now knows the CNF instruction.
  • FPA float->double conversions no longer eliminated (for correct behaviour with signalling NaNs and underflow traps).
  • Fixes to inline functions with difficult return types.
  • Many general code generation improvements and bug fixes.
  • Constant data placed in read-only area.
  • Mapping symbols ($d/$a) now placed in object file to aid DecAOF and DDT.
  • long long variables now output correctly in debugging information, (requires latest version of DDT).
  • Changes to warning control options (see below).
  • -zz and -zt options to control data allocation.
  • APCS-A and APCS-M support removed.

© 2003/2006 Castle Technology Ltd 32-bit RISC OS