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