i960 Processor Compiler User's Guide
7-16
7
g12 g12 is used as the PID bias register if generating
code for position independent data (PID).
g12 is
a call-preserved register.
g13 If the called function returns a struct or union
larger than four words, then the calling function
passes a pointer to the space allocated for the
return value in
g13. g13 is a call-scratch
register.
g14 If the function requires an argument block, this
register contains a pointer to the argument block;
otherwise it contains zero. If
g14 contains zero
upon entry, then it must contain zero upon exit. If
g14 contains a pointer to an argument block
upon function entry, then
g14 is considered a
call-scratch register.
g14 may also be used to hold the return address
when a function is called using a BAL
instruction. In this case,
g14 must contain zero
upon return from the function. This dual usage
of
g14 means that a function that requires an
argument block cannot be entered using a BAL
instruction.
g15 g15 is defined by the i960 architecture as the
frame pointer (FP).
fp0, fp1, If the function returns a long double and
fp2, fp3 generates code for the KB or SB processor and
compatibility with ic960 R2.0 is requested, then
fp0 contains the return value of the function.
fp0-fp3 are considered call-scratch registers.
AC The arithmetic control (AC) register is a call-
scratch register. The condition codes are not
preserved across a function call.