Datasheet

Differences
2-34 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0064D
Note
The order of the words in a little-endian
double
is different for FPA and VFP. If you
select
-fpu FPA
or
-fpu softFPA
the SDT 2.50/2.51 format is used. If you select
-fpu VFP
or
-fpu softVFP
the new format is used.
There is no functional difference between SoftFPA and SoftVFP. Both implement IEEE
floating-point arithmetic by subroutine call, and both use the IEEE encoding of
floating-point values into 32-bit words. However, the ordering of the two halves of a
double
is different for little-endian code. See Byte order of long long and double for
details.
Byte order of long long and double
The compilers and assembler now support the industry-standard pure-endian
long
long
and
double
types in both little-endian and big-endian formats. In SDT 2.50/2.51, the
formats of little-endian
double
and big-endian
long
long
are nonstandard mixed-endian.
If a big-endian 64-bit quantity is represented as
abcdefgh
in pure-endian, with
a
being
the most significant byte and
h
the least significant byte, the standard little-endian
format is
hgfedcba
in pure-endian. SDT 2.50/2.51 uses the following nonstandard
mixed-endian formats:
efghabcd
For big-endian
long
long
.
dcbahgfe
For little-endian
double
.
Impact
The format of
long
long
is always industry-standard in ADS 1.0. There is no impact if
you have used little-endian
long
long
. If you previously used big-endian
long
long
, you
must recompile your code and ensure that it conforms to the new format.
There is no impact if you have used big-endian
double
. If you previously used
little-endian
double
and hardware floating-point (FPA), you must continue to use the old
little-endian
double
format and select the
-fpu fpa
option in ADS.
If you previously used little-endian double and software floating-point, you can choose
whether or not to change to the new format:
•Use
-fpu softFPA
or
-fpu FPA
to retain the old format.
•Use
-fpu softVFP
or
-fpu VFP
to use the industry-standard format. You must
recompile code that defines or references
double
types.