ic960 Compiler Driver
3-39
3
the size to the next power of 2 (to a maximum of 16). In code
translated by ic960 releases before 3.0, the alignment of the
struct
defaults to the alignment of the largest member of the struct. You
must compile all modules of a program with the same alignment.
• For enum data types, the compiler selects a basic integral
representation type, choosing the narrowest type capable of
representing all of the enumeration values. The compiler can
represent the
enum type as signed char, unsigned char, short,
unsigned short, or int, depending upon the range of enumeration
values. Before Release 3.0, the compiler used only signed types to
represent
enum data types. For example, a maximum enumeration
value between 128 and 255 inclusive, now represented as an
unsigned char, was represented as a short in Release 2.0.
• The values of upper, unused bits of prototyped parameters and return
values smaller than 32 bits for ic960 Release 2.0 can differ from the
corresponding bit values for Releases 3.0 and later. The calling
convention for Release 3.0 does not extend the unused bits. The
called function must extend into the unused bits of prototyped
parameters and the function using a return value must extend into
unused bits of the return value. In code translated by ic960 releases
that preceded 3.0, the calling conventions extend into unused bits
when passing prototyped parameters and returning values smaller than
32 bits.
With this release of the compiler, the recipient of a narrow integral
value must assume that the high-order bits of the register containing
the value do not contain the appropriate zero- or sign-extension of the
value passed. It is the recipient function's responsibility to clean the
upper bits of a parameter or return value if necessary. Using the
Backward Compatible (
bc) argument causes the compiler to use the
rules of prior releases. Before this release of the compiler, narrow
integral values were always sign- or zero-extended by the originator.
• The Release 2.0 compiler, when used to compile for an i960 KB or SB
processor, returns
long double (80-bit) floating-point numbers in the
fp0 floating-point register.