0
|
1 /*
|
|
2 * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
|
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 *
|
|
5 * This code is free software; you can redistribute it and/or modify it
|
|
6 * under the terms of the GNU General Public License version 2 only, as
|
|
7 * published by the Free Software Foundation.
|
|
8 *
|
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
12 * version 2 for more details (a copy is included in the LICENSE file that
|
|
13 * accompanied this code).
|
|
14 *
|
|
15 * You should have received a copy of the GNU General Public License version
|
|
16 * 2 along with this work; if not, write to the Free Software Foundation,
|
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18 *
|
|
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
|
20 * CA 95054 USA or visit www.sun.com if you need additional information or
|
|
21 * have any questions.
|
|
22 *
|
|
23 */
|
|
24
|
|
25 // Use this to mark code that needs to be cleaned up (for development only)
|
|
26 #define NEEDS_CLEANUP
|
|
27
|
|
28 // Makes a string of the argument (which is not macro-expanded)
|
|
29 #define STR(a) #a
|
|
30
|
|
31 // Makes a string of the macro expansion of a
|
|
32 #define XSTR(a) STR(a)
|
|
33
|
|
34 // KERNEL variant
|
|
35 #ifdef KERNEL
|
|
36 #define COMPILER1
|
|
37 #define SERIALGC
|
|
38
|
|
39 #define JVMTI_KERNEL
|
|
40 #define FPROF_KERNEL
|
|
41 #define VM_STRUCTS_KERNEL
|
|
42 #define JNICHECK_KERNEL
|
|
43 #define SERVICES_KERNEL
|
|
44
|
|
45 #define KERNEL_RETURN {}
|
|
46 #define KERNEL_RETURN_(code) { code }
|
|
47
|
|
48 #else // KERNEL
|
|
49
|
|
50 #define KERNEL_RETURN /* next token must be ; */
|
|
51 #define KERNEL_RETURN_(code) /* next token must be ; */
|
|
52
|
|
53 #endif // KERNEL
|
|
54
|
|
55 // COMPILER1 variant
|
|
56 #ifdef COMPILER1
|
|
57 #ifdef COMPILER2
|
|
58 #define TIERED
|
|
59 #endif
|
|
60 #define COMPILER1_PRESENT(code) code
|
|
61 #else // COMPILER1
|
|
62 #define COMPILER1_PRESENT(code)
|
|
63 #endif // COMPILER1
|
|
64
|
|
65 // COMPILER2 variant
|
|
66 #ifdef COMPILER2
|
|
67 #define COMPILER2_PRESENT(code) code
|
|
68 #else // COMPILER2
|
|
69 #define COMPILER2_PRESENT(code)
|
|
70 #endif // COMPILER2
|
|
71
|
|
72
|
|
73 // PRODUCT variant
|
|
74 #ifdef PRODUCT
|
|
75 #define PRODUCT_ONLY(code) code
|
|
76 #define NOT_PRODUCT(code)
|
|
77 #define PRODUCT_RETURN {}
|
|
78 #define PRODUCT_RETURN0 { return 0; }
|
|
79 #define PRODUCT_RETURN_(code) { code }
|
|
80 #else // PRODUCT
|
|
81 #define PRODUCT_ONLY(code)
|
|
82 #define NOT_PRODUCT(code) code
|
|
83 #define PRODUCT_RETURN /*next token must be ;*/
|
|
84 #define PRODUCT_RETURN0 /*next token must be ;*/
|
|
85 #define PRODUCT_RETURN_(code) /*next token must be ;*/
|
|
86 #endif // PRODUCT
|
|
87
|
|
88 #ifdef CHECK_UNHANDLED_OOPS
|
|
89 #define CHECK_UNHANDLED_OOPS_ONLY(code) code
|
|
90 #define NOT_CHECK_UNHANDLED_OOPS(code)
|
|
91 #else
|
|
92 #define CHECK_UNHANDLED_OOPS_ONLY(code)
|
|
93 #define NOT_CHECK_UNHANDLED_OOPS(code) code
|
|
94 #endif // CHECK_UNHANDLED_OOPS
|
|
95
|
|
96 #ifdef CC_INTERP
|
|
97 #define CC_INTERP_ONLY(code) code
|
|
98 #define NOT_CC_INTERP(code)
|
|
99 #else
|
|
100 #define CC_INTERP_ONLY(code)
|
|
101 #define NOT_CC_INTERP(code) code
|
|
102 #endif // CC_INTERP
|
|
103
|
|
104 #ifdef ASSERT
|
|
105 #define DEBUG_ONLY(code) code
|
|
106 #define NOT_DEBUG(code)
|
|
107 // Historical.
|
|
108 #define debug_only(code) code
|
|
109 #else // ASSERT
|
|
110 #define DEBUG_ONLY(code)
|
|
111 #define NOT_DEBUG(code) code
|
|
112 #define debug_only(code)
|
|
113 #endif // ASSERT
|
|
114
|
|
115 #ifdef _LP64
|
|
116 #define LP64_ONLY(code) code
|
|
117 #define NOT_LP64(code)
|
|
118 #else // !_LP64
|
|
119 #define LP64_ONLY(code)
|
|
120 #define NOT_LP64(code) code
|
|
121 #endif // _LP64
|
|
122
|
|
123 #ifdef LINUX
|
|
124 #define LINUX_ONLY(code) code
|
|
125 #define NOT_LINUX(code)
|
|
126 #else
|
|
127 #define LINUX_ONLY(code)
|
|
128 #define NOT_LINUX(code) code
|
|
129 #endif
|
|
130
|
|
131 #ifdef SOLARIS
|
|
132 #define SOLARIS_ONLY(code) code
|
|
133 #define NOT_SOLARIS(code)
|
|
134 #else
|
|
135 #define SOLARIS_ONLY(code)
|
|
136 #define NOT_SOLARIS(code) code
|
|
137 #endif
|
|
138
|
|
139 #ifdef _WINDOWS
|
|
140 #define WINDOWS_ONLY(code) code
|
|
141 #define NOT_WINDOWS(code)
|
|
142 #else
|
|
143 #define WINDOWS_ONLY(code)
|
|
144 #define NOT_WINDOWS(code) code
|
|
145 #endif
|
|
146
|
|
147 #ifdef IA32
|
|
148 #define IA32_ONLY(code) code
|
|
149 #define NOT_IA32(code)
|
|
150 #else
|
|
151 #define IA32_ONLY(code)
|
|
152 #define NOT_IA32(code) code
|
|
153 #endif
|
|
154
|
|
155 #ifdef IA64
|
|
156 #define IA64_ONLY(code) code
|
|
157 #define NOT_IA64(code)
|
|
158 #else
|
|
159 #define IA64_ONLY(code)
|
|
160 #define NOT_IA64(code) code
|
|
161 #endif
|
|
162
|
|
163 #ifdef AMD64
|
|
164 #define AMD64_ONLY(code) code
|
|
165 #define NOT_AMD64(code)
|
|
166 #else
|
|
167 #define AMD64_ONLY(code)
|
|
168 #define NOT_AMD64(code) code
|
|
169 #endif
|
|
170
|
|
171 #ifdef SPARC
|
|
172 #define SPARC_ONLY(code) code
|
|
173 #define NOT_SPARC(code)
|
|
174 #else
|
|
175 #define SPARC_ONLY(code)
|
|
176 #define NOT_SPARC(code) code
|
|
177 #endif
|
|
178
|
|
179 #define FIX_THIS(code) report_assertion_failure("FIX_THIS",__FILE__, __LINE__, "")
|
|
180
|
|
181 #define define_pd_global(type, name, value) const type pd_##name = value;
|