Alpha Register Set


Integer Registers

$0 (v0)
Used for expression evaluations and to hold the integer function results. Not preserved acrossprocedure calls.
$1-$8 (t0-t7)
Temporary registers used for expression evaluations. Not preserved across procedure calls.
$9-$14 (s0-s5)
Saved registers. Preserved across procedure calls.
$15 or $fp (s6 or fp)
Contains the frame pointer (if needed); otherwise, a saved register.
$16-$21 (a0-a5)
Used to pass the first six integer type arguments. Not preserved across procedure calls.
$22-$25 (t8-t11)
Temporary registers used for expression evaluations. Not preserved across procedure calls.
$26 (ra)
Contains the return address. Preserved across procedure calls.
$27 (pv or t12)
Contains the procedure value and used for expression evaluation. Notpreserved across procedure calls.
$28 or $at (AT)
Reserved for the assembler. Not preserved across procedure calls.
$29 or $gp (gp)
Contains the global pointer. Not preserved across procedure calls.
$30 or $sp(sp)
Contains the stack pointer. Preserved across procedure calls.
$31(zero)
Always has the value 0.

Float Registers

$f0
Holds the float function result. Not preserved acrossprocedure calls.
$f1
Holds the imaginary part of a complex function result. Not preserved across procedure calls.
$f2-$f9
Saved registers. Preserved across procedure calls.
$f10-$15
Temporary registers used for expression evaluations. Not preserved across procedure calls.
$f16-$f21
Used to pass the first six float type arguments. Not preserved across procedure calls.
$f22-$30
Temporary registers used for expression evaluations. Not preserved across procedure calls.
$f31
Always has the value 0.0 .