This document tries to specify how the registers are used on the eabi MIPS ABI.
This ABI does not have any official register names, so names from other ABIs are left as references.
N° | Usage | O32 name | N32 name |
---|---|---|---|
0 | Zero | $zero |
$zero |
1 | Volatile | $at |
$at |
2 | Volatile / Return val | $v0 |
$v0 |
3 | Volatile / Return val 1 | $v1 |
$v1 |
4 | Volatile / Arg | $a0 |
$a0 |
5 | Volatile / Arg | $a1 |
$a1 |
6 | Volatile / Arg | $a2 |
$a2 |
7 | Volatile / Arg | $a3 |
$a3 |
8 | Volatile / Arg | $t0 |
$a4 |
9 | Volatile / Arg | $t1 |
$a5 |
10 | Volatile / Arg | $t2 |
$a6 |
11 | Volatile / Arg | $t3 |
$a7 |
12 | Volatile | $t4 |
$t0 |
13 | Volatile | $t5 |
$t1 |
14 | Volatile | $t6 |
$t2 |
15 | Volatile | $t7 |
$t3 |
16 | Non-volatile | $s0 |
$s0 |
17 | Non-volatile | $s1 |
$s1 |
18 | Non-volatile | $s2 |
$s2 |
19 | Non-volatile | $s3 |
$s3 |
20 | Non-volatile | $s4 |
$s4 |
21 | Non-volatile | $s5 |
$s5 |
22 | Non-volatile | $s6 |
$s6 |
23 | Non-volatile | $s7 |
$s7 |
24 | Volatile | $t8 |
$t8 |
25 | Volatile | $t9 |
$t9 |
26 | Kernel | $k0 |
$k0 |
27 | Kernel | $k1 |
$k1 |
28 | gp | $gp |
$gp |
29 | stack pointer | $sp |
$sp |
30 | Non-volatile | $fp /$s8 |
$fp /$s8 |
31 | Return address | $ra |
$ra |
N° | Usage | O32 name | N32 name | N64 name |
---|---|---|---|---|
$f0 |
Return value | $fv0 |
$fv0 |
$fv0 |
$f1 |
Return value 2 | $fv0f |
$ft14 |
$ft12 |
$f2 |
$fv1 |
$fv1 |
$fv1 |
|
$f3 |
$fv1f |
$ft15 |
$ft13 |
|
$f4 |
$ft0 |
$ft0 |
$ft0 |
|
$f5 |
$ft0f |
$ft1 |
$ft1 |
|
$f6 |
$ft1 |
$ft2 |
$ft2 |
|
$f7 |
$ft1f |
$ft3 |
$ft3 |
|
$f8 |
$ft2 |
$ft4 |
$ft4 |
|
$f9 |
$ft2f |
$ft5 |
$ft5 |
|
$f10 |
$ft3 |
$ft6 |
$ft6 |
|
$f11 |
$ft3f |
$ft7 |
$ft7 |
|
$f12 |
Arg | $fa0 |
$fa0 |
$fa0 |
$f13 |
Arg | $fa0f |
$fa1 |
$fa1 |
$f14 |
Arg | $fa1 |
$fa2 |
$fa2 |
$f15 |
Arg | $fa1f |
$fa3 |
$fa3 |
$f16 |
Arg | $ft4 |
$fa4 |
$fa4 |
$f17 |
Arg | $ft4f |
$fa5 |
$fa5 |
$f18 |
Arg | $ft5 |
$fa6 |
$fa6 |
$f19 |
Arg | $ft5f |
$fa7 |
$fa7 |
$f20 |
$fs0 |
$fs0 |
$ft8 |
|
$f21 |
$fs0f |
$ft8 |
$ft9 |
|
$f22 |
$fs1 |
$fs1 |
$ft10 |
|
$f23 |
$fs1f |
$ft9 |
$ft11 |
|
$f24 |
$fs2 |
$fs2 |
$fs0 |
|
$f25 |
$fs2f |
$ft10 |
$fs1 |
|
$f26 |
$fs3 |
$fs3 |
$fs2 |
|
$f27 |
$fs3f |
$ft11 |
$fs3 |
|
$f28 |
$fs4 |
$fs4 |
$fs4 |
|
$f29 |
$fs4f |
$ft12 |
$fs5 |
|
$f30 |
$fs5 |
$fs5 |
$fs6 |
|
$f31 |
$fs5f |
$ft13 |
$fs7 |
- https://sourceware.org/legacy-ml/binutils/2003-06/msg00436.html
- https://gist.github.com/EllipticEllipsis/27eef11205c7a59d8ea85632bc49224d#file-mips_registers-md