EE Registers
General-Purpose Registers (GPRs)
As per MIPS tradition, the EE has 32 GPRs. Notably, they are all 128-bit, though the full 128 bits are only used in certain instructions.
Name | Convention |
---|---|
zero | Hardwired to 0, writes are ignored |
at | Temporary register used for pseudo-instructions |
v0-v1 | Return register, holds values returned by functions |
a0-a3 | Argument registers, holds first four parameters passed to a function |
t0-t7 | Temporary registers. t0-t3 may also be used as additional argument registers |
s0-s7 | Saved registers. Functions must save and restore these before using them |
t8-t9 | Temporary registers |
k0-k1 | Reserved for use by kernels |
gp | Global pointer |
sp | Stack pointer |
fp | Frame pointer |
ra | Return address. Used by JAL and (usually) JALR to store the address to return to after a function |
Aside from zero, all GPRs may be freely accessed if convention rules are respected.
Special Registers
Name | Purpose |
---|---|
pc | Program counter, address of currently-executing instruction (32-bit) |
hi/lo | Stores multiplication and division results (64-bit) |
hi1/lo1 | Used by MULT1/DIV1 type instructions, same as above (64-bit) |
sa | Shift amount used by QFSRV instruction |