Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * This file is subject to the terms and conditions of the GNU General Public
0003  * License.  See the file "COPYING" in the main directory of this archive
0004  * for more details.
0005  *
0006  * Copyright (C) 1985 MIPS Computer Systems, Inc.
0007  * Copyright (C) 1994, 95, 99, 2003 by Ralf Baechle
0008  * Copyright (C) 1990 - 1992, 1999 Silicon Graphics, Inc.
0009  * Copyright (C) 2011 Wind River Systems,
0010  *   written by Ralf Baechle <ralf@linux-mips.org>
0011  */
0012 #ifndef _ASM_REGDEF_H
0013 #define _ASM_REGDEF_H
0014 
0015 #include <asm/sgidefs.h>
0016 
0017 #if _MIPS_SIM == _MIPS_SIM_ABI32
0018 
0019 /*
0020  * Symbolic register names for 32 bit ABI
0021  */
0022 #define zero    $0  /* wired zero */
0023 #define AT  $1  /* assembler temp  - uppercase because of ".set at" */
0024 #define v0  $2  /* return value */
0025 #define v1  $3
0026 #define a0  $4  /* argument registers */
0027 #define a1  $5
0028 #define a2  $6
0029 #define a3  $7
0030 #define t0  $8  /* caller saved */
0031 #define t1  $9
0032 #define t2  $10
0033 #define t3  $11
0034 #define t4  $12
0035 #define ta0 $12
0036 #define t5  $13
0037 #define ta1 $13
0038 #define t6  $14
0039 #define ta2 $14
0040 #define t7  $15
0041 #define ta3 $15
0042 #define s0  $16 /* callee saved */
0043 #define s1  $17
0044 #define s2  $18
0045 #define s3  $19
0046 #define s4  $20
0047 #define s5  $21
0048 #define s6  $22
0049 #define s7  $23
0050 #define t8  $24 /* caller saved */
0051 #define t9  $25
0052 #define jp  $25 /* PIC jump register */
0053 #define k0  $26 /* kernel scratch */
0054 #define k1  $27
0055 #define gp  $28 /* global pointer */
0056 #define sp  $29 /* stack pointer */
0057 #define fp  $30 /* frame pointer */
0058 #define s8  $30 /* same like fp! */
0059 #define ra  $31 /* return address */
0060 
0061 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
0062 
0063 #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
0064 
0065 #define zero    $0  /* wired zero */
0066 #define AT  $at /* assembler temp - uppercase because of ".set at" */
0067 #define v0  $2  /* return value - caller saved */
0068 #define v1  $3
0069 #define a0  $4  /* argument registers */
0070 #define a1  $5
0071 #define a2  $6
0072 #define a3  $7
0073 #define a4  $8  /* arg reg 64 bit; caller saved in 32 bit */
0074 #define ta0 $8
0075 #define a5  $9
0076 #define ta1 $9
0077 #define a6  $10
0078 #define ta2 $10
0079 #define a7  $11
0080 #define ta3 $11
0081 #define t0  $12 /* caller saved */
0082 #define t1  $13
0083 #define t2  $14
0084 #define t3  $15
0085 #define s0  $16 /* callee saved */
0086 #define s1  $17
0087 #define s2  $18
0088 #define s3  $19
0089 #define s4  $20
0090 #define s5  $21
0091 #define s6  $22
0092 #define s7  $23
0093 #define t8  $24 /* caller saved */
0094 #define t9  $25 /* callee address for PIC/temp */
0095 #define jp  $25 /* PIC jump register */
0096 #define k0  $26 /* kernel temporary */
0097 #define k1  $27
0098 #define gp  $28 /* global pointer - caller saved for PIC */
0099 #define sp  $29 /* stack pointer */
0100 #define fp  $30 /* frame pointer */
0101 #define s8  $30 /* callee saved */
0102 #define ra  $31 /* return address */
0103 
0104 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
0105 
0106 #endif /* _ASM_REGDEF_H */