src/share/vm/utilities/macros.hpp

Sun, 25 Sep 2011 16:03:29 -0700

author
never
date
Sun, 25 Sep 2011 16:03:29 -0700
changeset 3156
f08d439fab8c
parent 2603
1b4e6a5d98e0
child 4165
fb19af007ffc
permissions
-rw-r--r--

7089790: integrate bsd-port changes
Reviewed-by: kvn, twisti, jrose
Contributed-by: Kurt Miller <kurt@intricatesoftware.com>, Greg Lewis <glewis@eyesbeyond.com>, Jung-uk Kim <jkim@freebsd.org>, Christos Zoulas <christos@zoulas.com>, Landon Fuller <landonf@plausible.coop>, The FreeBSD Foundation <board@freebsdfoundation.org>, Michael Franz <mvfranz@gmail.com>, Roger Hoover <rhoover@apple.com>, Alexander Strange <astrange@apple.com>

     1 /*
     2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  *
    23  */
    25 #ifndef SHARE_VM_UTILITIES_MACROS_HPP
    26 #define SHARE_VM_UTILITIES_MACROS_HPP
    28 // Use this to mark code that needs to be cleaned up (for development only)
    29 #define NEEDS_CLEANUP
    31 // Makes a string of the argument (which is not macro-expanded)
    32 #define STR(a)  #a
    34 // Makes a string of the macro expansion of a
    35 #define XSTR(a) STR(a)
    37 // KERNEL variant
    38 #ifdef KERNEL
    39 #define COMPILER1
    40 #define SERIALGC
    42 #define JVMTI_KERNEL
    43 #define FPROF_KERNEL
    44 #define VM_STRUCTS_KERNEL
    45 #define JNICHECK_KERNEL
    46 #define SERVICES_KERNEL
    48 #define KERNEL_RETURN        {}
    49 #define KERNEL_RETURN_(code) { return code; }
    51 #else  // KERNEL
    53 #define KERNEL_RETURN        /* next token must be ; */
    54 #define KERNEL_RETURN_(code) /* next token must be ; */
    56 #endif // KERNEL
    58 // COMPILER1 variant
    59 #ifdef COMPILER1
    60 #ifdef COMPILER2
    61   #define TIERED
    62 #endif
    63 #define COMPILER1_PRESENT(code) code
    64 #else // COMPILER1
    65 #define COMPILER1_PRESENT(code)
    66 #endif // COMPILER1
    68 // COMPILER2 variant
    69 #ifdef COMPILER2
    70 #define COMPILER2_PRESENT(code) code
    71 #define NOT_COMPILER2(code)
    72 #else // COMPILER2
    73 #define COMPILER2_PRESENT(code)
    74 #define NOT_COMPILER2(code) code
    75 #endif // COMPILER2
    77 #ifdef TIERED
    78 #define TIERED_ONLY(code) code
    79 #define NOT_TIERED(code)
    80 #else
    81 #define TIERED_ONLY(code)
    82 #define NOT_TIERED(code) code
    83 #endif // TIERED
    86 // PRODUCT variant
    87 #ifdef PRODUCT
    88 #define PRODUCT_ONLY(code) code
    89 #define NOT_PRODUCT(code)
    90 #define NOT_PRODUCT_ARG(arg)
    91 #define PRODUCT_RETURN  {}
    92 #define PRODUCT_RETURN0 { return 0; }
    93 #define PRODUCT_RETURN_(code) { code }
    94 #else // PRODUCT
    95 #define PRODUCT_ONLY(code)
    96 #define NOT_PRODUCT(code) code
    97 #define NOT_PRODUCT_ARG(arg) arg,
    98 #define PRODUCT_RETURN  /*next token must be ;*/
    99 #define PRODUCT_RETURN0 /*next token must be ;*/
   100 #define PRODUCT_RETURN_(code)  /*next token must be ;*/
   101 #endif // PRODUCT
   103 #ifdef CHECK_UNHANDLED_OOPS
   104 #define CHECK_UNHANDLED_OOPS_ONLY(code) code
   105 #define NOT_CHECK_UNHANDLED_OOPS(code)
   106 #else
   107 #define CHECK_UNHANDLED_OOPS_ONLY(code)
   108 #define NOT_CHECK_UNHANDLED_OOPS(code)  code
   109 #endif // CHECK_UNHANDLED_OOPS
   111 #ifdef CC_INTERP
   112 #define CC_INTERP_ONLY(code) code
   113 #define NOT_CC_INTERP(code)
   114 #else
   115 #define CC_INTERP_ONLY(code)
   116 #define NOT_CC_INTERP(code) code
   117 #endif // CC_INTERP
   119 #ifdef ASSERT
   120 #define DEBUG_ONLY(code) code
   121 #define NOT_DEBUG(code)
   122 #define NOT_DEBUG_RETURN  /*next token must be ;*/
   123 // Historical.
   124 #define debug_only(code) code
   125 #else // ASSERT
   126 #define DEBUG_ONLY(code)
   127 #define NOT_DEBUG(code) code
   128 #define NOT_DEBUG_RETURN {}
   129 #define debug_only(code)
   130 #endif // ASSERT
   132 #ifdef  _LP64
   133 #define LP64_ONLY(code) code
   134 #define NOT_LP64(code)
   135 #else  // !_LP64
   136 #define LP64_ONLY(code)
   137 #define NOT_LP64(code) code
   138 #endif // _LP64
   140 #ifdef LINUX
   141 #define LINUX_ONLY(code) code
   142 #define NOT_LINUX(code)
   143 #else
   144 #define LINUX_ONLY(code)
   145 #define NOT_LINUX(code) code
   146 #endif
   148 #ifdef SOLARIS
   149 #define SOLARIS_ONLY(code) code
   150 #define NOT_SOLARIS(code)
   151 #else
   152 #define SOLARIS_ONLY(code)
   153 #define NOT_SOLARIS(code) code
   154 #endif
   156 #ifdef _WINDOWS
   157 #define WINDOWS_ONLY(code) code
   158 #define NOT_WINDOWS(code)
   159 #else
   160 #define WINDOWS_ONLY(code)
   161 #define NOT_WINDOWS(code) code
   162 #endif
   164 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
   165 #define BSD_ONLY(code) code
   166 #define NOT_BSD(code)
   167 #else
   168 #define BSD_ONLY(code)
   169 #define NOT_BSD(code) code
   170 #endif
   172 #ifdef _WIN64
   173 #define WIN64_ONLY(code) code
   174 #define NOT_WIN64(code)
   175 #else
   176 #define WIN64_ONLY(code)
   177 #define NOT_WIN64(code) code
   178 #endif
   180 #if defined(IA32) || defined(AMD64)
   181 #define X86
   182 #define X86_ONLY(code) code
   183 #define NOT_X86(code)
   184 #else
   185 #undef X86
   186 #define X86_ONLY(code)
   187 #define NOT_X86(code) code
   188 #endif
   190 #ifdef IA32
   191 #define IA32_ONLY(code) code
   192 #define NOT_IA32(code)
   193 #else
   194 #define IA32_ONLY(code)
   195 #define NOT_IA32(code) code
   196 #endif
   198 #ifdef IA64
   199 #define IA64_ONLY(code) code
   200 #define NOT_IA64(code)
   201 #else
   202 #define IA64_ONLY(code)
   203 #define NOT_IA64(code) code
   204 #endif
   206 #ifdef AMD64
   207 #define AMD64_ONLY(code) code
   208 #define NOT_AMD64(code)
   209 #else
   210 #define AMD64_ONLY(code)
   211 #define NOT_AMD64(code) code
   212 #endif
   214 #ifdef SPARC
   215 #define SPARC_ONLY(code) code
   216 #define NOT_SPARC(code)
   217 #else
   218 #define SPARC_ONLY(code)
   219 #define NOT_SPARC(code) code
   220 #endif
   222 #ifdef PPC
   223 #define PPC_ONLY(code) code
   224 #define NOT_PPC(code)
   225 #else
   226 #define PPC_ONLY(code)
   227 #define NOT_PPC(code) code
   228 #endif
   230 #ifdef E500V2
   231 #define E500V2_ONLY(code) code
   232 #define NOT_E500V2(code)
   233 #else
   234 #define E500V2_ONLY(code)
   235 #define NOT_E500V2(code) code
   236 #endif
   239 #ifdef ARM
   240 #define ARM_ONLY(code) code
   241 #define NOT_ARM(code)
   242 #else
   243 #define ARM_ONLY(code)
   244 #define NOT_ARM(code) code
   245 #endif
   247 #ifdef JAVASE_EMBEDDED
   248 #define EMBEDDED_ONLY(code) code
   249 #define NOT_EMBEDDED(code)
   250 #else
   251 #define EMBEDDED_ONLY(code)
   252 #define NOT_EMBEDDED(code) code
   253 #endif
   255 #define define_pd_global(type, name, value) const type pd_##name = value;
   257 #endif // SHARE_VM_UTILITIES_MACROS_HPP

mercurial