i960 Processor Compiler User's Guide
3-40
3
• The Release 3.0 compiler, when used to compile for any i960
processor, returns
long double floating-point numbers in the g0, g1,
and
g2 global registers. When Release 3.0 is used to compile for a
processor without a floating-point unit (e.g., the KA, SA, CA, or CF
processor), the compiler generates calls to the accelerated floating-
point library (“libh”). (Release 2.0 generated calls to the FPAL
floating-point-arithmetic library, but FPAL is no longer supported.)
You must recompile any KA, SA, CA, or CF module that was
compiled with ic960 R2.0 floating-point operations.
Big-endian Argument (be): If you select
be, you inform the compiler
that the memory system of the entire program is in big-endian format.
Only the i960 Cx, Hx, and Jx processors support big- and little-endian
format. Do not use this argument with other i960 architectures.
The compiler automatically passes the
G (Generate big-endian) option to
the assembler or linker if they are to be run.
Big Compression Assisted Virtual Execution (CAVE): If you
select
cave, the compiler generates special CAVE entries for all functions
in the compilation unit. This prepares the functions for link-time
compression. The CAVE entries resemble the following:
.section .text
_foo:
lda L1,reg
call __dispatcher
ret
.section cave
.word L2-L1,0
L1:
function body
L2:
At runtime, the dispatcher decompresses the function bodies and transfers
control to them. This mechanism saves runtime memory. (See the
discussion of
#pragma cave in Chapter 7 for more information.)