Import 2.3.18pre1
[davej-history.git] / include / asm-mips / sgidefs.h
blob06c94226f59028629f150d3fc4d419360765d402
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.
6 * Copyright (C) 1996 by Ralf Baechle
8 * Definitions commonly used in SGI style code.
9 */
10 #ifndef __ASM_SGIDEFS_H
11 #define __ASM_SGIDEFS_H
14 * There are compilers out there that don't define _MIPS_ISA, _MIPS_SIM,
15 * _MIPS_SZINT, _MIPS_SZLONG, _MIPS_SZPTR. So we notify the user about this
16 * problem. The kernel sources are aware of this problem, so we don't warn
17 * when compiling the kernel.
19 #if !defined(_MIPS_ISA) && !defined(__KERNEL__)
20 #warning "Macro _MIPS_ISA has not been defined by specs file"
21 #endif
23 #if !defined(_MIPS_SIM) && !defined(__KERNEL__)
24 #warning "Macro _MIPS_SIM has not been defined by specs file"
25 #endif
27 #if !defined(_MIPS_SZINT) && !defined(__KERNEL__)
28 #warning "Macro _MIPS_SZINT has not been defined by specs file"
29 #endif
31 #if !defined(_MIPS_SZLONG) && !defined(__KERNEL__)
32 #warning "Macro _MIPS_SZLONG has not been defined by specs file"
33 #endif
35 #if !defined(_MIPS_SZPTR) && !defined(__KERNEL__)
36 #warning "Macro _MIPS_SZPTR has not been defined by specs file"
37 #endif
39 #if (!defined(_MIPS_ISA) || \
40 !defined(_MIPS_SIM) || \
41 !defined(_MIPS_SZINT) || \
42 !defined(_MIPS_SZLONG) || \
43 !defined(_MIPS_SZPTR)) && !defined(__KERNEL__)
44 #warning "Please update your GCC to GCC 2.7.2-4 or newer"
45 #endif
48 * Now let's try our best to supply some reasonable default values for
49 * whatever defines GCC didn't supply. This cannot be done correct for
50 * all possible combinations of options, so be careful with your options
51 * to GCC. Best bet is to keep your fingers off the a.out GCC and use
52 * ELF GCC 2.7.2-3 where possible.
54 #ifndef _MIPS_ISA
55 #if __mips == 1
56 #define _MIPS_ISA _MIPS_ISA_MIPS1
57 /* It is impossible to handle the -mips2 case correct. */
58 #elif __mips == 3
59 #define _MIPS_ISA _MIPS_ISA_MIPS3
60 #elif __mips == 4
61 #define _MIPS_ISA _MIPS_ISA_MIPS4
62 #else /* __mips must be 5 */
63 #define _MIPS_ISA _MIPS_ISA_MIPS5
64 #endif
65 #endif
66 #ifndef _MIPS_SIM
67 #define _MIPS_SIM _MIPS_SIM_ABI32
68 #endif
69 #ifndef _MIPS_SZINT
70 #define _MIPS_SZINT 32
71 #endif
72 #ifndef _MIPS_SZLONG
73 #define _MIPS_SZLONG 32
74 #endif
75 #ifndef _MIPS_SZPTR
76 #define _MIPS_SZPTR 32
77 #endif
80 * Definitions for the ISA level
82 #define _MIPS_ISA_MIPS1 1
83 #define _MIPS_ISA_MIPS2 2
84 #define _MIPS_ISA_MIPS3 3
85 #define _MIPS_ISA_MIPS4 4
86 #define _MIPS_ISA_MIPS5 5
89 * Subprogram calling convention
91 * At the moment only _MIPS_SIM_ABI32 is in use. This will change rsn.
92 * Until GCC 2.8.0 is released don't rely on this definitions because the
93 * 64bit code is essentially using the 32bit interface model just with
94 * 64bit registers.
96 #define _MIPS_SIM_ABI32 1
97 #define _MIPS_SIM_NABI32 2
98 #define _MIPS_SIM_ABI64 3
100 #endif /* __ASM_SGIDEFS_H */