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 .