1361 /* Miscellaneous fields */ \
1362 /************************/ \
1363 \
1364 nonstatic_field(CompileTask, _method, Method*) \
1365 nonstatic_field(CompileTask, _osr_bci, int) \
1366 nonstatic_field(CompileTask, _comp_level, int) \
1367 nonstatic_field(CompileTask, _compile_id, uint) \
1368 nonstatic_field(CompileTask, _num_inlined_bytecodes, int) \
1369 nonstatic_field(CompileTask, _next, CompileTask*) \
1370 nonstatic_field(CompileTask, _prev, CompileTask*) \
1371 \
1372 nonstatic_field(vframeArray, _next, vframeArray*) \
1373 nonstatic_field(vframeArray, _original, frame) \
1374 nonstatic_field(vframeArray, _caller, frame) \
1375 nonstatic_field(vframeArray, _frames, int) \
1376 \
1377 nonstatic_field(vframeArrayElement, _frame, frame) \
1378 nonstatic_field(vframeArrayElement, _bci, int) \
1379 nonstatic_field(vframeArrayElement, _method, Method*) \
1380 \
1381 nonstatic_field(PtrQueue, _active, bool) \
1382 nonstatic_field(PtrQueue, _buf, void**) \
1383 nonstatic_field(PtrQueue, _index, size_t) \
1384 \
1385 nonstatic_field(AccessFlags, _flags, jint) \
1386 nonstatic_field(elapsedTimer, _counter, jlong) \
1387 nonstatic_field(elapsedTimer, _active, bool) \
1388 nonstatic_field(InvocationCounter, _counter, unsigned int) \
1389 volatile_nonstatic_field(FreeChunk, _size, size_t) \
1390 nonstatic_field(FreeChunk, _next, FreeChunk*) \
1391 nonstatic_field(FreeChunk, _prev, FreeChunk*) \
1392 nonstatic_field(AdaptiveFreeList<FreeChunk>, _size, size_t) \
1393 nonstatic_field(AdaptiveFreeList<FreeChunk>, _count, ssize_t)
1394
1395
1396 //--------------------------------------------------------------------------------
1397 // VM_TYPES
1398 //
1399 // This list must enumerate at least all of the types in the above
1400 // list. For the types in the above list, the entry below must have
1401 // exactly the same spacing since string comparisons are done in the
1402 // code which verifies the consistency of these tables (in the debug
1403 // build).
1404 //
2256 declare_toplevel_type(ObjectMonitor*) \
2257 declare_toplevel_type(oop*) \
2258 declare_toplevel_type(OopMap**) \
2259 declare_toplevel_type(OopMapCache*) \
2260 declare_toplevel_type(OopMapSet*) \
2261 declare_toplevel_type(VMReg) \
2262 declare_toplevel_type(OSThread*) \
2263 declare_integer_type(ReferenceType) \
2264 declare_toplevel_type(StubQueue*) \
2265 declare_toplevel_type(Thread*) \
2266 declare_toplevel_type(Universe) \
2267 declare_toplevel_type(os) \
2268 declare_toplevel_type(vframeArray) \
2269 declare_toplevel_type(vframeArrayElement) \
2270 declare_toplevel_type(Annotations*) \
2271 \
2272 /***************/ \
2273 /* Miscellaneous types */ \
2274 /***************/ \
2275 \
2276 declare_toplevel_type(PtrQueue) \
2277 \
2278 /* freelist */ \
2279 declare_toplevel_type(FreeChunk*) \
2280 declare_toplevel_type(AdaptiveFreeList<FreeChunk>*) \
2281 declare_toplevel_type(AdaptiveFreeList<FreeChunk>)
2282
2283
2284 //--------------------------------------------------------------------------------
2285 // VM_INT_CONSTANTS
2286 //
2287 // This table contains integer constants required over in the
2288 // serviceability agent. The "declare_constant" macro is used for all
2289 // enums, etc., while "declare_preprocessor_constant" must be used for
2290 // all #defined constants.
2291
2292 #define VM_INT_CONSTANTS(declare_constant, \
2293 declare_preprocessor_constant, \
2294 declare_c1_constant, \
2295 declare_c2_constant, \
2296 declare_c2_preprocessor_constant) \
2297 \
3049 #ifdef COMPILER2
3050 # define GENERATE_C2_VM_TYPE_ENTRY(a, b) GENERATE_VM_TYPE_ENTRY(a, b)
3051 # define CHECK_C2_VM_TYPE_ENTRY(a, b) CHECK_VM_TYPE_ENTRY(a, b)
3052 # define GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY(a) GENERATE_TOPLEVEL_VM_TYPE_ENTRY(a)
3053 # define CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3054 #else
3055 # define GENERATE_C2_VM_TYPE_ENTRY(a, b)
3056 # define CHECK_C2_VM_TYPE_ENTRY(a, b)
3057 # define GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3058 # define CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3059 #endif /* COMPILER2 */
3060
3061
3062 //--------------------------------------------------------------------------------
3063 // VMIntConstantEntry macros
3064 //
3065
3066 #define GENERATE_VM_INT_CONSTANT_ENTRY(name) \
3067 { QUOTE(name), (int32_t) name },
3068
3069 #define GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value) \
3070 { name, (int32_t) value },
3071
3072 // This macro generates the sentinel value indicating the end of the list
3073 #define GENERATE_VM_INT_CONSTANT_LAST_ENTRY() \
3074 { NULL, 0 }
3075
3076
3077 // Generate an int constant for a C1 build
3078 #ifdef COMPILER1
3079 # define GENERATE_C1_VM_INT_CONSTANT_ENTRY(name) GENERATE_VM_INT_CONSTANT_ENTRY(name)
3080 #else
3081 # define GENERATE_C1_VM_INT_CONSTANT_ENTRY(name)
3082 #endif /* COMPILER1 */
3083
3084 // Generate an int constant for a C2 build
3085 #ifdef COMPILER2
3086 # define GENERATE_C2_VM_INT_CONSTANT_ENTRY(name) GENERATE_VM_INT_CONSTANT_ENTRY(name)
3087 # define GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value) GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value)
3088 #else
3279 };
3280
3281 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
3282
3283 VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
3284 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3285 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3286 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3287 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3288
3289 #if INCLUDE_JVMCI
3290 VM_INT_CONSTANTS_JVMCI(GENERATE_VM_INT_CONSTANT_ENTRY,
3291 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3292
3293 #endif
3294
3295 #if INCLUDE_ALL_GCS
3296 VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
3297
3298 VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)
3299 #endif // INCLUDE_ALL_GCS
3300
3301 #if INCLUDE_TRACE
3302 VM_INT_CONSTANTS_TRACE(GENERATE_VM_INT_CONSTANT_ENTRY)
3303 #endif
3304
3305 VM_INT_CONSTANTS_OS(GENERATE_VM_INT_CONSTANT_ENTRY,
3306 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3307 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3308 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3309 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3310
3311 VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3312 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3313 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3314 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3315 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3316
3317 VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3318 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
|
1361 /* Miscellaneous fields */ \
1362 /************************/ \
1363 \
1364 nonstatic_field(CompileTask, _method, Method*) \
1365 nonstatic_field(CompileTask, _osr_bci, int) \
1366 nonstatic_field(CompileTask, _comp_level, int) \
1367 nonstatic_field(CompileTask, _compile_id, uint) \
1368 nonstatic_field(CompileTask, _num_inlined_bytecodes, int) \
1369 nonstatic_field(CompileTask, _next, CompileTask*) \
1370 nonstatic_field(CompileTask, _prev, CompileTask*) \
1371 \
1372 nonstatic_field(vframeArray, _next, vframeArray*) \
1373 nonstatic_field(vframeArray, _original, frame) \
1374 nonstatic_field(vframeArray, _caller, frame) \
1375 nonstatic_field(vframeArray, _frames, int) \
1376 \
1377 nonstatic_field(vframeArrayElement, _frame, frame) \
1378 nonstatic_field(vframeArrayElement, _bci, int) \
1379 nonstatic_field(vframeArrayElement, _method, Method*) \
1380 \
1381 nonstatic_field(AccessFlags, _flags, jint) \
1382 nonstatic_field(elapsedTimer, _counter, jlong) \
1383 nonstatic_field(elapsedTimer, _active, bool) \
1384 nonstatic_field(InvocationCounter, _counter, unsigned int) \
1385 volatile_nonstatic_field(FreeChunk, _size, size_t) \
1386 nonstatic_field(FreeChunk, _next, FreeChunk*) \
1387 nonstatic_field(FreeChunk, _prev, FreeChunk*) \
1388 nonstatic_field(AdaptiveFreeList<FreeChunk>, _size, size_t) \
1389 nonstatic_field(AdaptiveFreeList<FreeChunk>, _count, ssize_t)
1390
1391
1392 //--------------------------------------------------------------------------------
1393 // VM_TYPES
1394 //
1395 // This list must enumerate at least all of the types in the above
1396 // list. For the types in the above list, the entry below must have
1397 // exactly the same spacing since string comparisons are done in the
1398 // code which verifies the consistency of these tables (in the debug
1399 // build).
1400 //
2252 declare_toplevel_type(ObjectMonitor*) \
2253 declare_toplevel_type(oop*) \
2254 declare_toplevel_type(OopMap**) \
2255 declare_toplevel_type(OopMapCache*) \
2256 declare_toplevel_type(OopMapSet*) \
2257 declare_toplevel_type(VMReg) \
2258 declare_toplevel_type(OSThread*) \
2259 declare_integer_type(ReferenceType) \
2260 declare_toplevel_type(StubQueue*) \
2261 declare_toplevel_type(Thread*) \
2262 declare_toplevel_type(Universe) \
2263 declare_toplevel_type(os) \
2264 declare_toplevel_type(vframeArray) \
2265 declare_toplevel_type(vframeArrayElement) \
2266 declare_toplevel_type(Annotations*) \
2267 \
2268 /***************/ \
2269 /* Miscellaneous types */ \
2270 /***************/ \
2271 \
2272 /* freelist */ \
2273 declare_toplevel_type(FreeChunk*) \
2274 declare_toplevel_type(AdaptiveFreeList<FreeChunk>*) \
2275 declare_toplevel_type(AdaptiveFreeList<FreeChunk>)
2276
2277
2278 //--------------------------------------------------------------------------------
2279 // VM_INT_CONSTANTS
2280 //
2281 // This table contains integer constants required over in the
2282 // serviceability agent. The "declare_constant" macro is used for all
2283 // enums, etc., while "declare_preprocessor_constant" must be used for
2284 // all #defined constants.
2285
2286 #define VM_INT_CONSTANTS(declare_constant, \
2287 declare_preprocessor_constant, \
2288 declare_c1_constant, \
2289 declare_c2_constant, \
2290 declare_c2_preprocessor_constant) \
2291 \
3043 #ifdef COMPILER2
3044 # define GENERATE_C2_VM_TYPE_ENTRY(a, b) GENERATE_VM_TYPE_ENTRY(a, b)
3045 # define CHECK_C2_VM_TYPE_ENTRY(a, b) CHECK_VM_TYPE_ENTRY(a, b)
3046 # define GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY(a) GENERATE_TOPLEVEL_VM_TYPE_ENTRY(a)
3047 # define CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3048 #else
3049 # define GENERATE_C2_VM_TYPE_ENTRY(a, b)
3050 # define CHECK_C2_VM_TYPE_ENTRY(a, b)
3051 # define GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3052 # define CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY(a)
3053 #endif /* COMPILER2 */
3054
3055
3056 //--------------------------------------------------------------------------------
3057 // VMIntConstantEntry macros
3058 //
3059
3060 #define GENERATE_VM_INT_CONSTANT_ENTRY(name) \
3061 { QUOTE(name), (int32_t) name },
3062
3063 #define GENERATE_VM_INT_CONSTANT_WITH_VALUE_ENTRY(name, value) \
3064 { (name), (int32_t)(value) },
3065
3066 #define GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value) \
3067 { name, (int32_t) value },
3068
3069 // This macro generates the sentinel value indicating the end of the list
3070 #define GENERATE_VM_INT_CONSTANT_LAST_ENTRY() \
3071 { NULL, 0 }
3072
3073
3074 // Generate an int constant for a C1 build
3075 #ifdef COMPILER1
3076 # define GENERATE_C1_VM_INT_CONSTANT_ENTRY(name) GENERATE_VM_INT_CONSTANT_ENTRY(name)
3077 #else
3078 # define GENERATE_C1_VM_INT_CONSTANT_ENTRY(name)
3079 #endif /* COMPILER1 */
3080
3081 // Generate an int constant for a C2 build
3082 #ifdef COMPILER2
3083 # define GENERATE_C2_VM_INT_CONSTANT_ENTRY(name) GENERATE_VM_INT_CONSTANT_ENTRY(name)
3084 # define GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value) GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY(name, value)
3085 #else
3276 };
3277
3278 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
3279
3280 VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
3281 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3282 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3283 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3284 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3285
3286 #if INCLUDE_JVMCI
3287 VM_INT_CONSTANTS_JVMCI(GENERATE_VM_INT_CONSTANT_ENTRY,
3288 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3289
3290 #endif
3291
3292 #if INCLUDE_ALL_GCS
3293 VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
3294
3295 VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)
3296
3297 VM_INT_CONSTANTS_G1(GENERATE_VM_INT_CONSTANT_ENTRY,
3298 GENERATE_VM_INT_CONSTANT_WITH_VALUE_ENTRY)
3299 #endif // INCLUDE_ALL_GCS
3300
3301 #if INCLUDE_TRACE
3302 VM_INT_CONSTANTS_TRACE(GENERATE_VM_INT_CONSTANT_ENTRY)
3303 #endif
3304
3305 VM_INT_CONSTANTS_OS(GENERATE_VM_INT_CONSTANT_ENTRY,
3306 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3307 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3308 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3309 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3310
3311 VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3312 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3313 GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3314 GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3315 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3316
3317 VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3318 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
|