#define v0 $0 #define t0 $1 #define t1 $2 #define t2 $3 #define t3 $4 #define t4 $5 #define t5 $6 #define t6 $7 #define t7 $8 #define s0 $9 #define s1 $10 #define s2 $11 #define s3 $12 #define s4 $13 #define s5 $14 #define s6 $15 #define fp $15 /* fp & s6 are the same */ #define a0 $16 #define a1 $17 #define a2 $18 #define a3 $19 #define a4 $20 #define a5 $21 #define t8 $22 #define t9 $23 #define t10 $24 #define t11 $25 #define ra $26 #define pv $27 /* pv and t5 are the same */ #define t12 $27 #define AT $at #define gp $29 #define sp $30 #define zero $31 0: Return value register 1: Temp 0 2: Temp 1 3: Temp 2 4: Temp 3 5: Temp 4 6: Temp 5 7: Temp 6 8: Temp 7 9: Callee saved 0 10: Callee saved 1 11: Callee saved 2 12: Callee saved 3 13: Callee saved 4 14: Callee saved 5 15: Callee saved 6 and the Frame pointer 16: Argument 0 17: Argument 1 18: Argument 2 19: Argument 3 20: Argument 4 21: Argument 5 22: Temp 8 23: Temp 9 24: Temp 10 25: Temp 11 26: Return address for normal jumps 27: Target register for normal jumps 28: Assembler temp, bruised by assembler macros 29: Global pointer 30: Stack pointer 31: Zero register f0: Return value register for real part f1: Return value register for imaginary part f2: Callee saved f3: Callee saved f4: Callee saved f5: Callee saved f6: Callee saved f7: Callee saved f8: Callee saved f9: Callee saved f10: Temp f11: Temp f12: Temp f13: Temp f14: Temp f15: Temp f16: Argument 0 f17: Argument 1 f18: Argument 2 f19: Argument 3 f20: Argument 4 f21: Argument 5 f22: Temp f23: Temp f24: Temp f25: Temp f26: Temp f27: Temp f28: Temp f29: Temp f30: Temp f31: Zero register --