1*819833afSPeter Tyser /* 2*819833afSPeter Tyser * This file is subject to the terms and conditions of the GNU General Public 3*819833afSPeter Tyser * License. See the file "COPYING" in the main directory of this archive 4*819833afSPeter Tyser * for more details. 5*819833afSPeter Tyser * 6*819833afSPeter Tyser * Copyright (C) 1985 MIPS Computer Systems, Inc. 7*819833afSPeter Tyser * Copyright (C) 1994, 95, 99, 2003 by Ralf Baechle 8*819833afSPeter Tyser * Copyright (C) 1990 - 1992, 1999 Silicon Graphics, Inc. 9*819833afSPeter Tyser */ 10*819833afSPeter Tyser #ifndef _ASM_REGDEF_H 11*819833afSPeter Tyser #define _ASM_REGDEF_H 12*819833afSPeter Tyser 13*819833afSPeter Tyser #include <asm/sgidefs.h> 14*819833afSPeter Tyser 15*819833afSPeter Tyser #if _MIPS_SIM == _MIPS_SIM_ABI32 16*819833afSPeter Tyser 17*819833afSPeter Tyser /* 18*819833afSPeter Tyser * Symbolic register names for 32 bit ABI 19*819833afSPeter Tyser */ 20*819833afSPeter Tyser #define zero $0 /* wired zero */ 21*819833afSPeter Tyser #define AT $1 /* assembler temp - uppercase because of ".set at" */ 22*819833afSPeter Tyser #define v0 $2 /* return value */ 23*819833afSPeter Tyser #define v1 $3 24*819833afSPeter Tyser #define a0 $4 /* argument registers */ 25*819833afSPeter Tyser #define a1 $5 26*819833afSPeter Tyser #define a2 $6 27*819833afSPeter Tyser #define a3 $7 28*819833afSPeter Tyser #define t0 $8 /* caller saved */ 29*819833afSPeter Tyser #define t1 $9 30*819833afSPeter Tyser #define t2 $10 31*819833afSPeter Tyser #define t3 $11 32*819833afSPeter Tyser #define t4 $12 33*819833afSPeter Tyser #define t5 $13 34*819833afSPeter Tyser #define t6 $14 35*819833afSPeter Tyser #define t7 $15 36*819833afSPeter Tyser #define s0 $16 /* callee saved */ 37*819833afSPeter Tyser #define s1 $17 38*819833afSPeter Tyser #define s2 $18 39*819833afSPeter Tyser #define s3 $19 40*819833afSPeter Tyser #define s4 $20 41*819833afSPeter Tyser #define s5 $21 42*819833afSPeter Tyser #define s6 $22 43*819833afSPeter Tyser #define s7 $23 44*819833afSPeter Tyser #define t8 $24 /* caller saved */ 45*819833afSPeter Tyser #define t9 $25 46*819833afSPeter Tyser #define jp $25 /* PIC jump register */ 47*819833afSPeter Tyser #define k0 $26 /* kernel scratch */ 48*819833afSPeter Tyser #define k1 $27 49*819833afSPeter Tyser #define gp $28 /* global pointer */ 50*819833afSPeter Tyser #define sp $29 /* stack pointer */ 51*819833afSPeter Tyser #define fp $30 /* frame pointer */ 52*819833afSPeter Tyser #define s8 $30 /* same like fp! */ 53*819833afSPeter Tyser #define ra $31 /* return address */ 54*819833afSPeter Tyser 55*819833afSPeter Tyser #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 56*819833afSPeter Tyser 57*819833afSPeter Tyser #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 58*819833afSPeter Tyser 59*819833afSPeter Tyser #define zero $0 /* wired zero */ 60*819833afSPeter Tyser #define AT $at /* assembler temp - uppercase because of ".set at" */ 61*819833afSPeter Tyser #define v0 $2 /* return value - caller saved */ 62*819833afSPeter Tyser #define v1 $3 63*819833afSPeter Tyser #define a0 $4 /* argument registers */ 64*819833afSPeter Tyser #define a1 $5 65*819833afSPeter Tyser #define a2 $6 66*819833afSPeter Tyser #define a3 $7 67*819833afSPeter Tyser #define a4 $8 /* arg reg 64 bit; caller saved in 32 bit */ 68*819833afSPeter Tyser #define ta0 $8 69*819833afSPeter Tyser #define a5 $9 70*819833afSPeter Tyser #define ta1 $9 71*819833afSPeter Tyser #define a6 $10 72*819833afSPeter Tyser #define ta2 $10 73*819833afSPeter Tyser #define a7 $11 74*819833afSPeter Tyser #define ta3 $11 75*819833afSPeter Tyser #define t0 $12 /* caller saved */ 76*819833afSPeter Tyser #define t1 $13 77*819833afSPeter Tyser #define t2 $14 78*819833afSPeter Tyser #define t3 $15 79*819833afSPeter Tyser #define s0 $16 /* callee saved */ 80*819833afSPeter Tyser #define s1 $17 81*819833afSPeter Tyser #define s2 $18 82*819833afSPeter Tyser #define s3 $19 83*819833afSPeter Tyser #define s4 $20 84*819833afSPeter Tyser #define s5 $21 85*819833afSPeter Tyser #define s6 $22 86*819833afSPeter Tyser #define s7 $23 87*819833afSPeter Tyser #define t8 $24 /* caller saved */ 88*819833afSPeter Tyser #define t9 $25 /* callee address for PIC/temp */ 89*819833afSPeter Tyser #define jp $25 /* PIC jump register */ 90*819833afSPeter Tyser #define k0 $26 /* kernel temporary */ 91*819833afSPeter Tyser #define k1 $27 92*819833afSPeter Tyser #define gp $28 /* global pointer - caller saved for PIC */ 93*819833afSPeter Tyser #define sp $29 /* stack pointer */ 94*819833afSPeter Tyser #define fp $30 /* frame pointer */ 95*819833afSPeter Tyser #define s8 $30 /* callee saved */ 96*819833afSPeter Tyser #define ra $31 /* return address */ 97*819833afSPeter Tyser 98*819833afSPeter Tyser #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */ 99*819833afSPeter Tyser 100*819833afSPeter Tyser #endif /* _ASM_REGDEF_H */ 101