Datasheet
Differences
2-22 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0064D
• Tentative declarations are allowed by default in ADS 1.1 and later. In ADS 1.0.1,
tentative declarations were disallowed by default unless
-strict
was specified.
• Output from the
-S
and
-S -fs
options now displays standard register names, such
as r0-r3, instead of their ATPCS equivalents (a1-a4). The output from
-S
-fs
is
now written to
filename.txt
, instead of
filename.s
.
• When compiling with
-zo
, output sections now use the same name as the function
that generates the section. For example:
int f(int x) { return x+1; }
compiled with
-zo
gives:
AREA ||i.f||, CODE, READONLY
f PROC
ADD r0,r0,#1
MOV pc,lr
• When compiling for ARM architecture v5TE, the compilers now use the
one-cycle 16-bit multiply instruction when multiplying two16-bit (short)
operands to produce a single 32-bit result.
• The compilers now support out of order inlining. This means you can call an
inline function before it is defined. In accordance with standard C, you must still
declare the function prototype before it is called.
• Additional optimizations have been introduced. The compilers do not generate:
— Unused static functions for optimization levels
-O1
and
-O2
.
— Unused inline functions for all optimization levels. (This is unchanged
behavior.)
— Unused static RW data for
-O1
and above.
— Unused static const data for all optimization levels.
In addition:
• The compilers now reorder top-level data items when this will save space. For
example, if the following global variables are defined:
char a = 0x11;
short b = 0x2222;
char c = 0x33;
int d = 0x44444444;
the ADS 1.1 compilers optimizes the order and stores them in memory as:
char a;
char c;
short b;
int d;