RTEMS Intel i960 Applications Supplement
All members of the i960 architecture family support two methods for performing procedure calls: a RISC-style branch-and-link and an integrated call and return mechanism.
On a branch-and-link, the processor branches to the
invoked procedure and saves the return address in a register,
G14. Typically, the invoked procedure will not invoke another
procedure and is referred to as a leaf procedure. Many
high-level language compilers for the i960 family recognize leaf
procedures and automatically optimize them to utilize the
branch-and-link mechanism. Branch-and-link procedures are
invoked using the bal and balx instructions and return control
via the bx instruction. By convention, G14 is zero when not in
a leaf procedure. It is the responsibility of the leaf
procedure to clear G14 before returning.
The integrated call and return mechanism also
branches to the invoked procedure and saves the return address
as did the branch and link mechanism. However, the important
difference is that the call, callx, and calls instructions save
the local register set (R0 through R15) before transferring
control to the invoked procedure. The ret instruction
automatically restores the previous local register set. The
i960CA provides a register cache which can be configured to
retain the last five to sixteen recent register caches. When
the register cache is full, the oldest cached register set is
written to the stack.
RTEMS Intel i960 Applications Supplement
Copyright © 1988-2003 OAR Corporation