about summary refs log tree commit diff
path: root/ports/sysdeps/mips/sys/fpregdef.h
blob: bd30ffe6640d61ab06cea5e96b4fcf6433502419 (plain) (blame)
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
107
108
109
110
111
112
113
114
115
116
117
118
/* Copyright (C) 1991,92,94,95,96,97,98,2009 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library.  If not, see
   <http://www.gnu.org/licenses/>.  */

#ifndef _SYS_FPREGDEF_H
#define _SYS_FPREGDEF_H

#include <sgidefs.h>

/* Commonalities first, individualities next...  */

#define fv0	$f0	/* return value */
#define fv1	$f2

#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
#define fs0	$f20	/* callee saved */
#define fs1	$f22
#define fs2	$f24
#define fs3	$f26
#define fs4	$f28
#define fs5	$f30
#endif /* _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 */

#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
#define fa0	$f12	/* argument registers */
#define fa1	$f13
#define fa2	$f14
#define fa3	$f15
#define fa4	$f16
#define fa5	$f17
#define fa6	$f18
#define fa7	$f19

#define ft0	$f4	/* caller saved */
#define ft1	$f5
#define ft2	$f6
#define ft3	$f7
#define ft4	$f8
#define ft5	$f9
#define ft6	$f10
#define ft7	$f11
#endif /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */

#if _MIPS_SIM == _ABIO32
#define fv0f	$f1	/* return value, high part */
#define fv1f	$f3

#define fa0	$f12	/* argument registers */
#define fa0f	$f13
#define fa1	$f14
#define fa1f	$f15

#define ft0	$f4	/* caller saved */
#define ft0f	$f5
#define ft1	$f6
#define ft1f	$f7
#define ft2	$f8
#define ft2f	$f9
#define ft3	$f10
#define ft3f	$f11
#define ft4	$f16
#define ft4f	$f17
#define ft5	$f18
#define ft5f	$f19

#define fs0f	$f21	/* callee saved, high part */
#define fs1f	$f23
#define fs2f	$f25
#define fs3f	$f27
#define fs4f	$f29
#define fs5f	$f31
#endif /* _MIPS_SIM == _ABIO32 */

#if _MIPS_SIM == _ABI64
#define ft8	$f20	/* caller saved */
#define ft9	$f21
#define ft10	$f22
#define ft11	$f23
#define ft12	$f1
#define ft13	$f3

#define fs0	$f24	/* callee saved */
#define fs1	$f25
#define fs2	$f26
#define fs3	$f27
#define fs4	$f28
#define fs5	$f29
#define fs6	$f30
#define fs7	$f31
#endif /* _MIPS_SIM == _ABI64 */

#if _MIPS_SIM == _ABIN32
#define ft8	$f21	/* caller saved */
#define ft9	$f23
#define ft10	$f25
#define ft11	$f27
#define ft12	$f29
#define ft13	$f31
#define ft14	$f1
#define ft15	$f3
#endif /* _MIPS_SIM == _ABIN32 */

#define fcr31	$31	/* FPU status register */

#endif /* sys/fpregdef.h */