src/share/vm/utilities/macros.hpp

Tue, 31 Aug 2010 03:14:00 -0700

author
ikrylov
date
Tue, 31 Aug 2010 03:14:00 -0700
changeset 2123
6ee479178066
parent 2047
d2ede61b7a12
child 2151
18c378513575
permissions
-rw-r--r--

6979444: add command line option to print command line flags descriptions
Summary: Implementation of a nonproduct boolean flag XX:PrintFlagsWithComments
Reviewed-by: kamg, dholmes, dsamersoff

     1 /*
     2  * Copyright (c) 1997, 2010, 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 // Use this to mark code that needs to be cleaned up (for development only)
    26 #define NEEDS_CLEANUP
    28 // Makes a string of the argument (which is not macro-expanded)
    29 #define STR(a)  #a
    31 // Makes a string of the macro expansion of a
    32 #define XSTR(a) STR(a)
    34 // KERNEL variant
    35 #ifdef KERNEL
    36 #define COMPILER1
    37 #define SERIALGC
    39 #define JVMTI_KERNEL
    40 #define FPROF_KERNEL
    41 #define VM_STRUCTS_KERNEL
    42 #define JNICHECK_KERNEL
    43 #define SERVICES_KERNEL
    45 #define KERNEL_RETURN        {}
    46 #define KERNEL_RETURN_(code) { code }
    48 #else  // KERNEL
    50 #define KERNEL_RETURN        /* next token must be ; */
    51 #define KERNEL_RETURN_(code) /* next token must be ; */
    53 #endif // KERNEL
    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
    65 // COMPILER2 variant
    66 #ifdef COMPILER2
    67 #define COMPILER2_PRESENT(code) code
    68 #define NOT_COMPILER2(code)
    69 #else // COMPILER2
    70 #define COMPILER2_PRESENT(code)
    71 #define NOT_COMPILER2(code) code
    72 #endif // COMPILER2
    75 // PRODUCT variant
    76 #ifdef PRODUCT
    77 #define PRODUCT_ONLY(code) code
    78 #define NOT_PRODUCT(code)
    79 #define NOT_PRODUCT_ARG(arg)
    80 #define PRODUCT_RETURN  {}
    81 #define PRODUCT_RETURN0 { return 0; }
    82 #define PRODUCT_RETURN_(code) { code }
    83 #else // PRODUCT
    84 #define PRODUCT_ONLY(code)
    85 #define NOT_PRODUCT(code) code
    86 #define NOT_PRODUCT_ARG(arg) arg,
    87 #define PRODUCT_RETURN  /*next token must be ;*/
    88 #define PRODUCT_RETURN0 /*next token must be ;*/
    89 #define PRODUCT_RETURN_(code)  /*next token must be ;*/
    90 #endif // PRODUCT
    92 #ifdef CHECK_UNHANDLED_OOPS
    93 #define CHECK_UNHANDLED_OOPS_ONLY(code) code
    94 #define NOT_CHECK_UNHANDLED_OOPS(code)
    95 #else
    96 #define CHECK_UNHANDLED_OOPS_ONLY(code)
    97 #define NOT_CHECK_UNHANDLED_OOPS(code)  code
    98 #endif // CHECK_UNHANDLED_OOPS
   100 #ifdef CC_INTERP
   101 #define CC_INTERP_ONLY(code) code
   102 #define NOT_CC_INTERP(code)
   103 #else
   104 #define CC_INTERP_ONLY(code)
   105 #define NOT_CC_INTERP(code) code
   106 #endif // CC_INTERP
   108 #ifdef ASSERT
   109 #define DEBUG_ONLY(code) code
   110 #define NOT_DEBUG(code)
   111 #define NOT_DEBUG_RETURN  /*next token must be ;*/
   112 // Historical.
   113 #define debug_only(code) code
   114 #else // ASSERT
   115 #define DEBUG_ONLY(code)
   116 #define NOT_DEBUG(code) code
   117 #define NOT_DEBUG_RETURN {}
   118 #define debug_only(code)
   119 #endif // ASSERT
   121 #ifdef  _LP64
   122 #define LP64_ONLY(code) code
   123 #define NOT_LP64(code)
   124 #else  // !_LP64
   125 #define LP64_ONLY(code)
   126 #define NOT_LP64(code) code
   127 #endif // _LP64
   129 #ifdef LINUX
   130 #define LINUX_ONLY(code) code
   131 #define NOT_LINUX(code)
   132 #else
   133 #define LINUX_ONLY(code)
   134 #define NOT_LINUX(code) code
   135 #endif
   137 #ifdef SOLARIS
   138 #define SOLARIS_ONLY(code) code
   139 #define NOT_SOLARIS(code)
   140 #else
   141 #define SOLARIS_ONLY(code)
   142 #define NOT_SOLARIS(code) code
   143 #endif
   145 #ifdef _WINDOWS
   146 #define WINDOWS_ONLY(code) code
   147 #define NOT_WINDOWS(code)
   148 #else
   149 #define WINDOWS_ONLY(code)
   150 #define NOT_WINDOWS(code) code
   151 #endif
   153 #if defined(IA32) || defined(AMD64)
   154 #define X86
   155 #define X86_ONLY(code) code
   156 #define NOT_X86(code)
   157 #else
   158 #undef X86
   159 #define X86_ONLY(code)
   160 #define NOT_X86(code) code
   161 #endif
   163 #ifdef IA32
   164 #define IA32_ONLY(code) code
   165 #define NOT_IA32(code)
   166 #else
   167 #define IA32_ONLY(code)
   168 #define NOT_IA32(code) code
   169 #endif
   171 #ifdef IA64
   172 #define IA64_ONLY(code) code
   173 #define NOT_IA64(code)
   174 #else
   175 #define IA64_ONLY(code)
   176 #define NOT_IA64(code) code
   177 #endif
   179 #ifdef AMD64
   180 #define AMD64_ONLY(code) code
   181 #define NOT_AMD64(code)
   182 #else
   183 #define AMD64_ONLY(code)
   184 #define NOT_AMD64(code) code
   185 #endif
   187 #ifdef SPARC
   188 #define SPARC_ONLY(code) code
   189 #define NOT_SPARC(code)
   190 #else
   191 #define SPARC_ONLY(code)
   192 #define NOT_SPARC(code) code
   193 #endif
   195 #ifdef PPC
   196 #define PPC_ONLY(code) code
   197 #define NOT_PPC(code)
   198 #else
   199 #define PPC_ONLY(code)
   200 #define NOT_PPC(code) code
   201 #endif
   203 #ifdef E500V2
   204 #define E500V2_ONLY(code) code
   205 #define NOT_E500V2(code)
   206 #else
   207 #define E500V2_ONLY(code)
   208 #define NOT_E500V2(code) code
   209 #endif
   212 #ifdef ARM
   213 #define ARM_ONLY(code) code
   214 #define NOT_ARM(code)
   215 #else
   216 #define ARM_ONLY(code)
   217 #define NOT_ARM(code) code
   218 #endif
   220 #ifdef JAVASE_EMBEDDED
   221 #define EMBEDDED_ONLY(code) code
   222 #define NOT_EMBEDDED(code)
   223 #else
   224 #define EMBEDDED_ONLY(code)
   225 #define NOT_EMBEDDED(code) code
   226 #endif
   228 #define define_pd_global(type, name, value) const type pd_##name = value;

mercurial