4113 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4114 "Allocation less than this value will be allocated " \ 4115 "using malloc. Larger allocations will use mmap.") \ 4116 \ 4117 experimental(bool, AlwaysAtomicAccesses, false, \ 4118 "Accesses to all variables should always be atomic") \ 4119 \ 4120 product(bool, EnableTracing, false, \ 4121 "Enable event-based tracing") \ 4122 \ 4123 product(bool, UseLockedTracing, false, \ 4124 "Use locked-tracing when doing event-based tracing") \ 4125 \ 4126 diagnostic(bool, UseUnalignedAccesses, false, \ 4127 "Use unaligned memory accesses in sun.misc.Unsafe") \ 4128 \ 4129 product_pd(bool, PreserveFramePointer, \ 4130 "Use the FP register for holding the frame pointer " \ 4131 "and not as a general purpose register.") \ 4132 \ 4133 diagnostic(bool, CheckIntrinsics, trueInDebug, \ 4134 "When a class C is loaded, check that " \ 4135 "(1) all intrinsics defined by the VM for class C are present "\ 4136 "in the loaded class file and are marked with the " \ 4137 "@HotSpotIntrinsicCandidate annotation and also that " \ 4138 "(2) there is an intrinsic registered for all loaded methods " \ 4139 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4140 "annotation.") 4141 4142 /* 4143 * Macros for factoring of globals 4144 */ 4145 4146 // Interface macros 4147 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4148 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4149 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4150 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4151 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4152 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4153 #ifdef PRODUCT 4154 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type CONST_##name; const type name = value; 4155 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type CONST_##name; const type name = pd_##name; 4156 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type CONST_##name; 4157 #else 4158 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; 4159 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; 4160 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; | 4113 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4114 "Allocation less than this value will be allocated " \ 4115 "using malloc. Larger allocations will use mmap.") \ 4116 \ 4117 experimental(bool, AlwaysAtomicAccesses, false, \ 4118 "Accesses to all variables should always be atomic") \ 4119 \ 4120 product(bool, EnableTracing, false, \ 4121 "Enable event-based tracing") \ 4122 \ 4123 product(bool, UseLockedTracing, false, \ 4124 "Use locked-tracing when doing event-based tracing") \ 4125 \ 4126 diagnostic(bool, UseUnalignedAccesses, false, \ 4127 "Use unaligned memory accesses in sun.misc.Unsafe") \ 4128 \ 4129 product_pd(bool, PreserveFramePointer, \ 4130 "Use the FP register for holding the frame pointer " \ 4131 "and not as a general purpose register.") \ 4132 \ 4133 diagnostic(bool, CheckIntrinsics, true, \ 4134 "When a class C is loaded, check that " \ 4135 "(1) all intrinsics defined by the VM for class C are present "\ 4136 "in the loaded class file and are marked with the " \ 4137 "@HotSpotIntrinsicCandidate annotation, that " \ 4138 "(2) there is an intrinsic registered for all loaded methods " \ 4139 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4140 "annotation, and that " \ 4141 "(3) no orphan methods exist for class C (i.e., methods for " \ 4142 "which the VM declares an intrinsic but that are not declared "\ 4143 "in the loaded class C. " \ 4144 "Check (3) is available only in debug builds.") 4145 4146 /* 4147 * Macros for factoring of globals 4148 */ 4149 4150 // Interface macros 4151 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4152 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4153 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4154 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4155 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4156 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4157 #ifdef PRODUCT 4158 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type CONST_##name; const type name = value; 4159 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type CONST_##name; const type name = pd_##name; 4160 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type CONST_##name; 4161 #else 4162 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; 4163 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; 4164 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; |