Although most of the registers in the Nios II architecture are designated as General Purpose Registers, there are some recommended uses of the registers for correct software operation with high-level languages or an operating system.
Table 1: Register Conventions
| CPU Register | Symbolic Register | Usage |
|---|---|---|
| r0 | zero | Always 0 (note 1) |
| r1 | at | Assembler Temporary |
| r2 - r3 | | Function Return Values |
| r4 - r7 | | Function Arguments |
| r8 - r15 | | Temporary – Caller does not need to preserve contents |
| r16 - r23 | | Saved Temporary – Caller must preserve contents |
| r24 | et | Exception Temporary |
| r25 | bt | Break Temporary |
| r26 | gp | Global Pointer – Used for fast-access to common data |
| r27 | sp | Stack Pointer – Software stack |
| r28 | fp | Frame Pointer – procdedure frame on stack |
| r29 | ea | Exception Return Address |
| r30 | er | Break Return Address |
| r31 | ra | Return Address (note 1) |
Note 1: Hardware enforced, not just convention
Maintained by John Loomis, last updated 9 September 2008