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