Mercurial > hg > truffle
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/vm/utilities/macros.hpp Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,181 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +// Use this to mark code that needs to be cleaned up (for development only) +#define NEEDS_CLEANUP + +// Makes a string of the argument (which is not macro-expanded) +#define STR(a) #a + +// Makes a string of the macro expansion of a +#define XSTR(a) STR(a) + +// KERNEL variant +#ifdef KERNEL +#define COMPILER1 +#define SERIALGC + +#define JVMTI_KERNEL +#define FPROF_KERNEL +#define VM_STRUCTS_KERNEL +#define JNICHECK_KERNEL +#define SERVICES_KERNEL + +#define KERNEL_RETURN {} +#define KERNEL_RETURN_(code) { code } + +#else // KERNEL + +#define KERNEL_RETURN /* next token must be ; */ +#define KERNEL_RETURN_(code) /* next token must be ; */ + +#endif // KERNEL + +// COMPILER1 variant +#ifdef COMPILER1 +#ifdef COMPILER2 + #define TIERED +#endif +#define COMPILER1_PRESENT(code) code +#else // COMPILER1 +#define COMPILER1_PRESENT(code) +#endif // COMPILER1 + +// COMPILER2 variant +#ifdef COMPILER2 +#define COMPILER2_PRESENT(code) code +#else // COMPILER2 +#define COMPILER2_PRESENT(code) +#endif // COMPILER2 + + +// PRODUCT variant +#ifdef PRODUCT +#define PRODUCT_ONLY(code) code +#define NOT_PRODUCT(code) +#define PRODUCT_RETURN {} +#define PRODUCT_RETURN0 { return 0; } +#define PRODUCT_RETURN_(code) { code } +#else // PRODUCT +#define PRODUCT_ONLY(code) +#define NOT_PRODUCT(code) code +#define PRODUCT_RETURN /*next token must be ;*/ +#define PRODUCT_RETURN0 /*next token must be ;*/ +#define PRODUCT_RETURN_(code) /*next token must be ;*/ +#endif // PRODUCT + +#ifdef CHECK_UNHANDLED_OOPS +#define CHECK_UNHANDLED_OOPS_ONLY(code) code +#define NOT_CHECK_UNHANDLED_OOPS(code) +#else +#define CHECK_UNHANDLED_OOPS_ONLY(code) +#define NOT_CHECK_UNHANDLED_OOPS(code) code +#endif // CHECK_UNHANDLED_OOPS + +#ifdef CC_INTERP +#define CC_INTERP_ONLY(code) code +#define NOT_CC_INTERP(code) +#else +#define CC_INTERP_ONLY(code) +#define NOT_CC_INTERP(code) code +#endif // CC_INTERP + +#ifdef ASSERT +#define DEBUG_ONLY(code) code +#define NOT_DEBUG(code) +// Historical. +#define debug_only(code) code +#else // ASSERT +#define DEBUG_ONLY(code) +#define NOT_DEBUG(code) code +#define debug_only(code) +#endif // ASSERT + +#ifdef _LP64 +#define LP64_ONLY(code) code +#define NOT_LP64(code) +#else // !_LP64 +#define LP64_ONLY(code) +#define NOT_LP64(code) code +#endif // _LP64 + +#ifdef LINUX +#define LINUX_ONLY(code) code +#define NOT_LINUX(code) +#else +#define LINUX_ONLY(code) +#define NOT_LINUX(code) code +#endif + +#ifdef SOLARIS +#define SOLARIS_ONLY(code) code +#define NOT_SOLARIS(code) +#else +#define SOLARIS_ONLY(code) +#define NOT_SOLARIS(code) code +#endif + +#ifdef _WINDOWS +#define WINDOWS_ONLY(code) code +#define NOT_WINDOWS(code) +#else +#define WINDOWS_ONLY(code) +#define NOT_WINDOWS(code) code +#endif + +#ifdef IA32 +#define IA32_ONLY(code) code +#define NOT_IA32(code) +#else +#define IA32_ONLY(code) +#define NOT_IA32(code) code +#endif + +#ifdef IA64 +#define IA64_ONLY(code) code +#define NOT_IA64(code) +#else +#define IA64_ONLY(code) +#define NOT_IA64(code) code +#endif + +#ifdef AMD64 +#define AMD64_ONLY(code) code +#define NOT_AMD64(code) +#else +#define AMD64_ONLY(code) +#define NOT_AMD64(code) code +#endif + +#ifdef SPARC +#define SPARC_ONLY(code) code +#define NOT_SPARC(code) +#else +#define SPARC_ONLY(code) +#define NOT_SPARC(code) code +#endif + +#define FIX_THIS(code) report_assertion_failure("FIX_THIS",__FILE__, __LINE__, "") + +#define define_pd_global(type, name, value) const type pd_##name = value;