xref: /rk3399_rockchip-uboot/arch/mips/include/asm/regdef.h (revision 819833af39a91fa1c1e8252862bbda6f5a602f7b)
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