comparison src/share/vm/utilities/macros.hpp @ 0:a61af66fc99e jdk7-b24

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children dc7f315e41f7
comparison
equal deleted inserted replaced
-1:000000000000 0:a61af66fc99e
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;