comparison src/share/vm/runtime/vmStructs.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents a9fed06c01d2
children aed758eda82a
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
49 #include "gc_implementation/shared/mutableSpace.hpp" 49 #include "gc_implementation/shared/mutableSpace.hpp"
50 #include "gc_interface/collectedHeap.hpp" 50 #include "gc_interface/collectedHeap.hpp"
51 #include "interpreter/bytecodeInterpreter.hpp" 51 #include "interpreter/bytecodeInterpreter.hpp"
52 #include "interpreter/bytecodes.hpp" 52 #include "interpreter/bytecodes.hpp"
53 #include "interpreter/interpreter.hpp" 53 #include "interpreter/interpreter.hpp"
54 #include "memory/allocation.hpp"
54 #include "memory/cardTableRS.hpp" 55 #include "memory/cardTableRS.hpp"
55 #include "memory/compactPermGen.hpp"
56 #include "memory/defNewGeneration.hpp" 56 #include "memory/defNewGeneration.hpp"
57 #include "memory/freeBlockDictionary.hpp" 57 #include "memory/freeBlockDictionary.hpp"
58 #include "memory/genCollectedHeap.hpp" 58 #include "memory/genCollectedHeap.hpp"
59 #include "memory/generation.hpp" 59 #include "memory/generation.hpp"
60 #include "memory/generationSpec.hpp" 60 #include "memory/generationSpec.hpp"
61 #include "memory/heap.hpp" 61 #include "memory/heap.hpp"
62 #include "memory/permGen.hpp"
63 #include "memory/space.hpp" 62 #include "memory/space.hpp"
64 #include "memory/tenuredGeneration.hpp" 63 #include "memory/tenuredGeneration.hpp"
65 #include "memory/universe.hpp" 64 #include "memory/universe.hpp"
66 #include "memory/watermark.hpp" 65 #include "memory/watermark.hpp"
67 #include "oops/arrayKlass.hpp" 66 #include "oops/arrayKlass.hpp"
68 #include "oops/arrayKlassKlass.hpp"
69 #include "oops/arrayOop.hpp" 67 #include "oops/arrayOop.hpp"
70 #include "oops/compiledICHolderKlass.hpp" 68 #include "oops/compiledICHolder.hpp"
71 #include "oops/compiledICHolderOop.hpp" 69 #include "oops/constMethod.hpp"
72 #include "oops/constMethodKlass.hpp" 70 #include "oops/constantPool.hpp"
73 #include "oops/constMethodOop.hpp" 71 #include "oops/cpCache.hpp"
74 #include "oops/constantPoolKlass.hpp" 72 #include "oops/instanceClassLoaderKlass.hpp"
75 #include "oops/constantPoolOop.hpp"
76 #include "oops/cpCacheKlass.hpp"
77 #include "oops/cpCacheOop.hpp"
78 #include "oops/instanceKlass.hpp" 73 #include "oops/instanceKlass.hpp"
79 #include "oops/instanceMirrorKlass.hpp" 74 #include "oops/instanceMirrorKlass.hpp"
80 #include "oops/instanceKlassKlass.hpp"
81 #include "oops/instanceOop.hpp" 75 #include "oops/instanceOop.hpp"
82 #include "oops/klass.hpp" 76 #include "oops/klass.hpp"
83 #include "oops/klassOop.hpp"
84 #include "oops/markOop.hpp" 77 #include "oops/markOop.hpp"
85 #include "oops/methodDataKlass.hpp" 78 #include "oops/methodData.hpp"
86 #include "oops/methodDataOop.hpp" 79 #include "oops/method.hpp"
87 #include "oops/methodKlass.hpp"
88 #include "oops/methodOop.hpp"
89 #include "oops/objArrayKlass.hpp" 80 #include "oops/objArrayKlass.hpp"
90 #include "oops/objArrayKlassKlass.hpp"
91 #include "oops/objArrayOop.hpp" 81 #include "oops/objArrayOop.hpp"
92 #include "oops/oop.inline.hpp" 82 #include "oops/oop.inline.hpp"
93 #include "oops/symbol.hpp" 83 #include "oops/symbol.hpp"
94 #include "oops/typeArrayKlass.hpp" 84 #include "oops/typeArrayKlass.hpp"
95 #include "oops/typeArrayKlassKlass.hpp"
96 #include "oops/typeArrayOop.hpp" 85 #include "oops/typeArrayOop.hpp"
97 #include "prims/jvmtiAgentThread.hpp" 86 #include "prims/jvmtiAgentThread.hpp"
98 #include "runtime/arguments.hpp" 87 #include "runtime/arguments.hpp"
99 #include "runtime/deoptimization.hpp" 88 #include "runtime/deoptimization.hpp"
100 #include "runtime/vframeArray.hpp" 89 #include "runtime/vframeArray.hpp"
105 #include "runtime/serviceThread.hpp" 94 #include "runtime/serviceThread.hpp"
106 #include "runtime/sharedRuntime.hpp" 95 #include "runtime/sharedRuntime.hpp"
107 #include "runtime/stubRoutines.hpp" 96 #include "runtime/stubRoutines.hpp"
108 #include "runtime/virtualspace.hpp" 97 #include "runtime/virtualspace.hpp"
109 #include "runtime/vmStructs.hpp" 98 #include "runtime/vmStructs.hpp"
99 #include "utilities/array.hpp"
110 #include "utilities/globalDefinitions.hpp" 100 #include "utilities/globalDefinitions.hpp"
111 #include "utilities/hashtable.hpp" 101 #include "utilities/hashtable.hpp"
112 #ifdef TARGET_ARCH_x86 102 #ifdef TARGET_ARCH_x86
113 # include "vmStructs_x86.hpp" 103 # include "vmStructs_x86.hpp"
114 #endif 104 #endif
165 #endif 155 #endif
166 #ifdef TARGET_OS_ARCH_bsd_zero 156 #ifdef TARGET_OS_ARCH_bsd_zero
167 # include "vmStructs_bsd_zero.hpp" 157 # include "vmStructs_bsd_zero.hpp"
168 #endif 158 #endif
169 #ifndef SERIALGC 159 #ifndef SERIALGC
170 #include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp"
171 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" 160 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
172 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" 161 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp"
173 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" 162 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
174 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp" 163 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp"
175 #include "gc_implementation/parNew/parNewGeneration.hpp" 164 #include "gc_implementation/parNew/parNewGeneration.hpp"
176 #include "gc_implementation/parNew/vmStructs_parNew.hpp" 165 #include "gc_implementation/parNew/vmStructs_parNew.hpp"
177 #include "gc_implementation/parallelScavenge/asPSOldGen.hpp" 166 #include "gc_implementation/parallelScavenge/asPSOldGen.hpp"
178 #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" 167 #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp"
179 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" 168 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
180 #include "gc_implementation/parallelScavenge/psOldGen.hpp" 169 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
181 #include "gc_implementation/parallelScavenge/psPermGen.hpp"
182 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp" 170 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp"
183 #include "gc_implementation/parallelScavenge/psYoungGen.hpp" 171 #include "gc_implementation/parallelScavenge/psYoungGen.hpp"
184 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp" 172 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp"
185 #include "gc_implementation/g1/vmStructs_g1.hpp" 173 #include "gc_implementation/g1/vmStructs_g1.hpp"
186 #endif 174 #endif
246 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry; 234 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
247 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable; 235 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
248 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; 236 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
249 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; 237 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
250 typedef Hashtable<oop, mtSymbol> StringHashtable; 238 typedef Hashtable<oop, mtSymbol> StringHashtable;
251 typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable; 239 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable;
252 typedef Hashtable<klassOop, mtClass> klassOopHashtable; 240 typedef Hashtable<Klass*, mtClass> KlassHashtable;
253 typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry; 241 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry;
254 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 242 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
255 243
256 //-------------------------------------------------------------------------------- 244 //--------------------------------------------------------------------------------
257 // VM_STRUCTS 245 // VM_STRUCTS
258 // 246 //
271 unchecked_c1_static_field, \ 259 unchecked_c1_static_field, \
272 unchecked_c2_static_field, \ 260 unchecked_c2_static_field, \
273 last_entry) \ 261 last_entry) \
274 \ 262 \
275 /******************************************************************/ \ 263 /******************************************************************/ \
276 /* OopDesc and Klass hierarchies (NOTE: methodDataOop incomplete) */ \ 264 /* OopDesc and Klass hierarchies (NOTE: MethodData* incomplete) */ \
277 /******************************************************************/ \ 265 /******************************************************************/ \
278 \ 266 \
279 volatile_nonstatic_field(oopDesc, _mark, markOop) \ 267 volatile_nonstatic_field(oopDesc, _mark, markOop) \
280 volatile_nonstatic_field(oopDesc, _metadata._klass, wideKlassOop) \ 268 volatile_nonstatic_field(oopDesc, _metadata._klass, Klass*) \
281 volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \ 269 volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \
282 static_field(oopDesc, _bs, BarrierSet*) \ 270 static_field(oopDesc, _bs, BarrierSet*) \
283 nonstatic_field(arrayKlass, _dimension, int) \ 271 nonstatic_field(arrayKlass, _dimension, int) \
284 volatile_nonstatic_field(arrayKlass, _higher_dimension, klassOop) \ 272 volatile_nonstatic_field(arrayKlass, _higher_dimension, Klass*) \
285 volatile_nonstatic_field(arrayKlass, _lower_dimension, klassOop) \ 273 volatile_nonstatic_field(arrayKlass, _lower_dimension, Klass*) \
286 nonstatic_field(arrayKlass, _vtable_len, int) \ 274 nonstatic_field(arrayKlass, _vtable_len, int) \
287 nonstatic_field(arrayKlass, _alloc_size, juint) \ 275 nonstatic_field(arrayKlass, _alloc_size, juint) \
288 nonstatic_field(arrayKlass, _component_mirror, oop) \ 276 nonstatic_field(arrayKlass, _component_mirror, oop) \
289 nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \ 277 nonstatic_field(CompiledICHolder, _holder_method, Method*) \
290 nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \ 278 nonstatic_field(CompiledICHolder, _holder_klass, Klass*) \
291 nonstatic_field(compiledICHolderOopDesc, _holder_klass, klassOop) \ 279 nonstatic_field(ConstantPool, _tags, Array<u1>*) \
292 nonstatic_field(constantPoolOopDesc, _tags, typeArrayOop) \ 280 nonstatic_field(ConstantPool, _cache, ConstantPoolCache*) \
293 nonstatic_field(constantPoolOopDesc, _cache, constantPoolCacheOop) \ 281 nonstatic_field(ConstantPool, _pool_holder, Klass*) \
294 nonstatic_field(constantPoolOopDesc, _pool_holder, klassOop) \ 282 nonstatic_field(ConstantPool, _operands, Array<u2>*) \
295 nonstatic_field(constantPoolOopDesc, _operands, typeArrayOop) \ 283 nonstatic_field(ConstantPool, _length, int) \
296 nonstatic_field(constantPoolOopDesc, _length, int) \ 284 nonstatic_field(ConstantPool, _resolved_references, jobject) \
297 nonstatic_field(constantPoolCacheOopDesc, _length, int) \ 285 nonstatic_field(ConstantPool, _reference_map, Array<u2>*) \
298 nonstatic_field(constantPoolCacheOopDesc, _constant_pool, constantPoolOop) \ 286 nonstatic_field(ConstantPoolCache, _length, int) \
299 nonstatic_field(instanceKlass, _array_klasses, klassOop) \ 287 nonstatic_field(ConstantPoolCache, _constant_pool, ConstantPool*) \
300 nonstatic_field(instanceKlass, _methods, objArrayOop) \ 288 nonstatic_field(InstanceKlass, _array_klasses, Klass*) \
301 nonstatic_field(instanceKlass, _method_ordering, typeArrayOop) \ 289 nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \
302 nonstatic_field(instanceKlass, _local_interfaces, objArrayOop) \ 290 nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \
303 nonstatic_field(instanceKlass, _transitive_interfaces, objArrayOop) \ 291 nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \
304 nonstatic_field(instanceKlass, _fields, typeArrayOop) \ 292 nonstatic_field(InstanceKlass, _fields, Array<u2>*) \
305 nonstatic_field(instanceKlass, _java_fields_count, u2) \ 293 nonstatic_field(InstanceKlass, _java_fields_count, u2) \
306 nonstatic_field(instanceKlass, _constants, constantPoolOop) \ 294 nonstatic_field(InstanceKlass, _constants, ConstantPool*) \
307 nonstatic_field(instanceKlass, _class_loader, oop) \ 295 nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \
308 nonstatic_field(instanceKlass, _protection_domain, oop) \ 296 nonstatic_field(InstanceKlass, _protection_domain, oop) \
309 nonstatic_field(instanceKlass, _signers, objArrayOop) \ 297 nonstatic_field(InstanceKlass, _signers, objArrayOop) \
310 nonstatic_field(instanceKlass, _source_file_name, Symbol*) \ 298 nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \
311 nonstatic_field(instanceKlass, _source_debug_extension, char*) \ 299 nonstatic_field(InstanceKlass, _source_debug_extension, char*) \
312 nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \ 300 nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \
313 nonstatic_field(instanceKlass, _nonstatic_field_size, int) \ 301 nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \
314 nonstatic_field(instanceKlass, _static_field_size, int) \ 302 nonstatic_field(InstanceKlass, _static_field_size, int) \
315 nonstatic_field(instanceKlass, _static_oop_field_count, u2) \ 303 nonstatic_field(InstanceKlass, _static_oop_field_count, u2) \
316 nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \ 304 nonstatic_field(InstanceKlass, _nonstatic_oop_map_size, int) \
317 nonstatic_field(instanceKlass, _is_marked_dependent, bool) \ 305 nonstatic_field(InstanceKlass, _is_marked_dependent, bool) \
318 nonstatic_field(instanceKlass, _minor_version, u2) \ 306 nonstatic_field(InstanceKlass, _minor_version, u2) \
319 nonstatic_field(instanceKlass, _major_version, u2) \ 307 nonstatic_field(InstanceKlass, _major_version, u2) \
320 nonstatic_field(instanceKlass, _init_state, u1) \ 308 nonstatic_field(InstanceKlass, _init_state, u1) \
321 nonstatic_field(instanceKlass, _init_thread, Thread*) \ 309 nonstatic_field(InstanceKlass, _init_thread, Thread*) \
322 nonstatic_field(instanceKlass, _vtable_len, int) \ 310 nonstatic_field(InstanceKlass, _vtable_len, int) \
323 nonstatic_field(instanceKlass, _itable_len, int) \ 311 nonstatic_field(InstanceKlass, _itable_len, int) \
324 nonstatic_field(instanceKlass, _reference_type, u1) \ 312 nonstatic_field(InstanceKlass, _reference_type, u1) \
325 volatile_nonstatic_field(instanceKlass, _oop_map_cache, OopMapCache*) \ 313 volatile_nonstatic_field(InstanceKlass, _oop_map_cache, OopMapCache*) \
326 nonstatic_field(instanceKlass, _jni_ids, JNIid*) \ 314 nonstatic_field(InstanceKlass, _jni_ids, JNIid*) \
327 nonstatic_field(instanceKlass, _osr_nmethods_head, nmethod*) \ 315 nonstatic_field(InstanceKlass, _osr_nmethods_head, nmethod*) \
328 nonstatic_field(instanceKlass, _breakpoints, BreakpointInfo*) \ 316 nonstatic_field(InstanceKlass, _breakpoints, BreakpointInfo*) \
329 nonstatic_field(instanceKlass, _generic_signature, Symbol*) \ 317 nonstatic_field(InstanceKlass, _generic_signature, Symbol*) \
330 nonstatic_field(instanceKlass, _methods_jmethod_ids, jmethodID*) \ 318 nonstatic_field(InstanceKlass, _methods_jmethod_ids, jmethodID*) \
331 nonstatic_field(instanceKlass, _methods_cached_itable_indices, int*) \ 319 nonstatic_field(InstanceKlass, _methods_cached_itable_indices, int*) \
332 volatile_nonstatic_field(instanceKlass, _idnum_allocated_count, u2) \ 320 volatile_nonstatic_field(InstanceKlass, _idnum_allocated_count, u2) \
333 nonstatic_field(instanceKlass, _class_annotations, typeArrayOop) \ 321 nonstatic_field(InstanceKlass, _annotations, Annotations*) \
334 nonstatic_field(instanceKlass, _fields_annotations, objArrayOop) \ 322 nonstatic_field(InstanceKlass, _dependencies, nmethodBucket*) \
335 nonstatic_field(instanceKlass, _methods_annotations, objArrayOop) \
336 nonstatic_field(instanceKlass, _methods_parameter_annotations, objArrayOop) \
337 nonstatic_field(instanceKlass, _methods_default_annotations, objArrayOop) \
338 nonstatic_field(instanceKlass, _dependencies, nmethodBucket*) \
339 nonstatic_field(nmethodBucket, _nmethod, nmethod*) \ 323 nonstatic_field(nmethodBucket, _nmethod, nmethod*) \
340 nonstatic_field(nmethodBucket, _count, int) \ 324 nonstatic_field(nmethodBucket, _count, int) \
341 nonstatic_field(nmethodBucket, _next, nmethodBucket*) \ 325 nonstatic_field(nmethodBucket, _next, nmethodBucket*) \
326 nonstatic_field(InstanceKlass, _method_ordering, Array<int>*) \
342 nonstatic_field(Klass, _super_check_offset, juint) \ 327 nonstatic_field(Klass, _super_check_offset, juint) \
343 nonstatic_field(Klass, _secondary_super_cache, klassOop) \ 328 nonstatic_field(Klass, _secondary_super_cache, Klass*) \
344 nonstatic_field(Klass, _secondary_supers, objArrayOop) \ 329 nonstatic_field(Klass, _secondary_supers, Array<Klass*>*) \
345 nonstatic_field(Klass, _primary_supers[0], klassOop) \ 330 nonstatic_field(Klass, _primary_supers[0], Klass*) \
346 nonstatic_field(Klass, _java_mirror, oop) \ 331 nonstatic_field(Klass, _java_mirror, oop) \
347 nonstatic_field(Klass, _modifier_flags, jint) \ 332 nonstatic_field(Klass, _modifier_flags, jint) \
348 nonstatic_field(Klass, _super, klassOop) \ 333 nonstatic_field(Klass, _super, Klass*) \
349 nonstatic_field(Klass, _layout_helper, jint) \ 334 nonstatic_field(Klass, _layout_helper, jint) \
350 nonstatic_field(Klass, _name, Symbol*) \ 335 nonstatic_field(Klass, _name, Symbol*) \
351 nonstatic_field(Klass, _access_flags, AccessFlags) \ 336 nonstatic_field(Klass, _access_flags, AccessFlags) \
352 nonstatic_field(Klass, _subklass, klassOop) \ 337 nonstatic_field(Klass, _subklass, Klass*) \
353 nonstatic_field(Klass, _next_sibling, klassOop) \ 338 nonstatic_field(Klass, _next_sibling, Klass*) \
354 nonproduct_nonstatic_field(Klass, _verify_count, int) \ 339 nonproduct_nonstatic_field(Klass, _verify_count, int) \
355 nonstatic_field(Klass, _alloc_count, juint) \ 340 nonstatic_field(Klass, _alloc_count, juint) \
356 nonstatic_field(klassKlass, _alloc_size, juint) \ 341 nonstatic_field(MethodData, _size, int) \
357 nonstatic_field(methodKlass, _alloc_size, juint) \ 342 nonstatic_field(MethodData, _method, Method*) \
358 nonstatic_field(methodDataOopDesc, _size, int) \ 343 nonstatic_field(MethodData, _data_size, int) \
359 nonstatic_field(methodDataOopDesc, _method, methodOop) \ 344 nonstatic_field(MethodData, _data[0], intptr_t) \
360 nonstatic_field(methodDataOopDesc, _data_size, int) \ 345 nonstatic_field(MethodData, _nof_decompiles, uint) \
361 nonstatic_field(methodDataOopDesc, _data[0], intptr_t) \ 346 nonstatic_field(MethodData, _nof_overflow_recompiles, uint) \
362 nonstatic_field(methodDataOopDesc, _nof_decompiles, uint) \ 347 nonstatic_field(MethodData, _nof_overflow_traps, uint) \
363 nonstatic_field(methodDataOopDesc, _nof_overflow_recompiles, uint) \ 348 nonstatic_field(MethodData, _eflags, intx) \
364 nonstatic_field(methodDataOopDesc, _nof_overflow_traps, uint) \ 349 nonstatic_field(MethodData, _arg_local, intx) \
365 nonstatic_field(methodDataOopDesc, _eflags, intx) \ 350 nonstatic_field(MethodData, _arg_stack, intx) \
366 nonstatic_field(methodDataOopDesc, _arg_local, intx) \ 351 nonstatic_field(MethodData, _arg_returned, intx) \
367 nonstatic_field(methodDataOopDesc, _arg_stack, intx) \ 352 nonstatic_field(Method, _constMethod, ConstMethod*) \
368 nonstatic_field(methodDataOopDesc, _arg_returned, intx) \ 353 nonstatic_field(Method, _method_data, MethodData*) \
369 nonstatic_field(methodOopDesc, _constMethod, constMethodOop) \ 354 nonstatic_field(Method, _interpreter_invocation_count, int) \
370 nonstatic_field(methodOopDesc, _method_data, methodDataOop) \ 355 nonstatic_field(Method, _access_flags, AccessFlags) \
371 nonstatic_field(methodOopDesc, _interpreter_invocation_count, int) \ 356 nonstatic_field(Method, _vtable_index, int) \
372 nonstatic_field(methodOopDesc, _access_flags, AccessFlags) \ 357 nonstatic_field(Method, _method_size, u2) \
373 nonstatic_field(methodOopDesc, _vtable_index, int) \ 358 nonstatic_field(Method, _max_stack, u2) \
374 nonstatic_field(methodOopDesc, _method_size, u2) \ 359 nonstatic_field(Method, _max_locals, u2) \
375 nonstatic_field(methodOopDesc, _max_stack, u2) \ 360 nonstatic_field(Method, _size_of_parameters, u2) \
376 nonstatic_field(methodOopDesc, _max_locals, u2) \ 361 nonstatic_field(Method, _interpreter_throwout_count, u2) \
377 nonstatic_field(methodOopDesc, _size_of_parameters, u2) \ 362 nonstatic_field(Method, _number_of_breakpoints, u2) \
378 nonstatic_field(methodOopDesc, _interpreter_throwout_count, u2) \ 363 nonstatic_field(Method, _invocation_counter, InvocationCounter) \
379 nonstatic_field(methodOopDesc, _number_of_breakpoints, u2) \ 364 nonstatic_field(Method, _backedge_counter, InvocationCounter) \
380 nonstatic_field(methodOopDesc, _invocation_counter, InvocationCounter) \ 365 nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \
381 nonstatic_field(methodOopDesc, _backedge_counter, InvocationCounter) \ 366 volatile_nonstatic_field(Method, _code, nmethod*) \
382 nonproduct_nonstatic_field(methodOopDesc, _compiled_invocation_count, int) \ 367 nonstatic_field(Method, _i2i_entry, address) \
383 volatile_nonstatic_field(methodOopDesc, _code, nmethod*) \ 368 nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \
384 nonstatic_field(methodOopDesc, _i2i_entry, address) \ 369 volatile_nonstatic_field(Method, _from_compiled_entry, address) \
385 nonstatic_field(methodOopDesc, _adapter, AdapterHandlerEntry*) \ 370 volatile_nonstatic_field(Method, _from_interpreted_entry, address) \
386 volatile_nonstatic_field(methodOopDesc, _from_compiled_entry, address) \ 371 volatile_nonstatic_field(ConstMethod, _fingerprint, uint64_t) \
387 volatile_nonstatic_field(methodOopDesc, _from_interpreted_entry, address) \ 372 nonstatic_field(ConstMethod, _constants, ConstantPool*) \
388 volatile_nonstatic_field(constMethodOopDesc, _fingerprint, uint64_t) \ 373 nonstatic_field(ConstMethod, _stackmap_data, Array<u1>*) \
389 nonstatic_field(constMethodOopDesc, _constants, constantPoolOop) \ 374 nonstatic_field(ConstMethod, _constMethod_size, int) \
390 nonstatic_field(constMethodOopDesc, _stackmap_data, typeArrayOop) \ 375 nonstatic_field(ConstMethod, _interpreter_kind, jbyte) \
391 nonstatic_field(constMethodOopDesc, _constMethod_size, int) \ 376 nonstatic_field(ConstMethod, _flags, jbyte) \
392 nonstatic_field(constMethodOopDesc, _interpreter_kind, jbyte) \ 377 nonstatic_field(ConstMethod, _code_size, u2) \
393 nonstatic_field(constMethodOopDesc, _flags, jbyte) \ 378 nonstatic_field(ConstMethod, _name_index, u2) \
394 nonstatic_field(constMethodOopDesc, _code_size, u2) \ 379 nonstatic_field(ConstMethod, _signature_index, u2) \
395 nonstatic_field(constMethodOopDesc, _name_index, u2) \ 380 nonstatic_field(ConstMethod, _method_idnum, u2) \
396 nonstatic_field(constMethodOopDesc, _signature_index, u2) \ 381 nonstatic_field(ConstMethod, _generic_signature_index, u2) \
397 nonstatic_field(constMethodOopDesc, _method_idnum, u2) \ 382 nonstatic_field(objArrayKlass, _element_klass, Klass*) \
398 nonstatic_field(constMethodOopDesc, _generic_signature_index, u2) \ 383 nonstatic_field(objArrayKlass, _bottom_klass, Klass*) \
399 nonstatic_field(objArrayKlass, _element_klass, klassOop) \
400 nonstatic_field(objArrayKlass, _bottom_klass, klassOop) \
401 volatile_nonstatic_field(Symbol, _refcount, int) \ 384 volatile_nonstatic_field(Symbol, _refcount, int) \
402 nonstatic_field(Symbol, _identity_hash, int) \ 385 nonstatic_field(Symbol, _identity_hash, int) \
403 nonstatic_field(Symbol, _length, unsigned short) \ 386 nonstatic_field(Symbol, _length, unsigned short) \
404 unchecked_nonstatic_field(Symbol, _body, sizeof(jbyte)) /* NOTE: no type */ \ 387 unchecked_nonstatic_field(Symbol, _body, sizeof(jbyte)) /* NOTE: no type */ \
405 nonstatic_field(typeArrayKlass, _max_length, int) \ 388 nonstatic_field(typeArrayKlass, _max_length, int) \
407 /***********************/ \ 390 /***********************/ \
408 /* Constant Pool Cache */ \ 391 /* Constant Pool Cache */ \
409 /***********************/ \ 392 /***********************/ \
410 \ 393 \
411 volatile_nonstatic_field(ConstantPoolCacheEntry, _indices, intx) \ 394 volatile_nonstatic_field(ConstantPoolCacheEntry, _indices, intx) \
412 volatile_nonstatic_field(ConstantPoolCacheEntry, _f1, oop) \ 395 nonstatic_field(ConstantPoolCacheEntry, _f1, volatile Metadata*) \
413 volatile_nonstatic_field(ConstantPoolCacheEntry, _f2, intx) \ 396 volatile_nonstatic_field(ConstantPoolCacheEntry, _f2, intx) \
414 volatile_nonstatic_field(ConstantPoolCacheEntry, _flags, intx) \ 397 volatile_nonstatic_field(ConstantPoolCacheEntry, _flags, intx) \
415 \ 398 \
416 /********************************/ \ 399 /********************************/ \
417 /* MethodOop-related structures */ \ 400 /* MethodOop-related structures */ \
435 nonstatic_field(BreakpointInfo, _next, BreakpointInfo*) \ 418 nonstatic_field(BreakpointInfo, _next, BreakpointInfo*) \
436 /***********/ \ 419 /***********/ \
437 /* JNI IDs */ \ 420 /* JNI IDs */ \
438 /***********/ \ 421 /***********/ \
439 \ 422 \
440 nonstatic_field(JNIid, _holder, klassOop) \ 423 nonstatic_field(JNIid, _holder, Klass*) \
441 nonstatic_field(JNIid, _next, JNIid*) \ 424 nonstatic_field(JNIid, _next, JNIid*) \
442 nonstatic_field(JNIid, _offset, int) \ 425 nonstatic_field(JNIid, _offset, int) \
443 /************/ \ 426 /************/ \
444 /* Universe */ \ 427 /* Universe */ \
445 /************/ \ 428 /************/ \
446 \ 429 \
447 static_field(Universe, _boolArrayKlassObj, klassOop) \ 430 static_field(Universe, _boolArrayKlassObj, Klass*) \
448 static_field(Universe, _byteArrayKlassObj, klassOop) \ 431 static_field(Universe, _byteArrayKlassObj, Klass*) \
449 static_field(Universe, _charArrayKlassObj, klassOop) \ 432 static_field(Universe, _charArrayKlassObj, Klass*) \
450 static_field(Universe, _intArrayKlassObj, klassOop) \ 433 static_field(Universe, _intArrayKlassObj, Klass*) \
451 static_field(Universe, _shortArrayKlassObj, klassOop) \ 434 static_field(Universe, _shortArrayKlassObj, Klass*) \
452 static_field(Universe, _longArrayKlassObj, klassOop) \ 435 static_field(Universe, _longArrayKlassObj, Klass*) \
453 static_field(Universe, _singleArrayKlassObj, klassOop) \ 436 static_field(Universe, _singleArrayKlassObj, Klass*) \
454 static_field(Universe, _doubleArrayKlassObj, klassOop) \ 437 static_field(Universe, _doubleArrayKlassObj, Klass*) \
455 static_field(Universe, _methodKlassObj, klassOop) \
456 static_field(Universe, _constMethodKlassObj, klassOop) \
457 static_field(Universe, _methodDataKlassObj, klassOop) \
458 static_field(Universe, _klassKlassObj, klassOop) \
459 static_field(Universe, _arrayKlassKlassObj, klassOop) \
460 static_field(Universe, _objArrayKlassKlassObj, klassOop) \
461 static_field(Universe, _typeArrayKlassKlassObj, klassOop) \
462 static_field(Universe, _instanceKlassKlassObj, klassOop) \
463 static_field(Universe, _constantPoolKlassObj, klassOop) \
464 static_field(Universe, _constantPoolCacheKlassObj, klassOop) \
465 static_field(Universe, _compiledICHolderKlassObj, klassOop) \
466 static_field(Universe, _systemObjArrayKlassObj, klassOop) \
467 static_field(Universe, _mirrors[0], oop) \ 438 static_field(Universe, _mirrors[0], oop) \
468 static_field(Universe, _main_thread_group, oop) \ 439 static_field(Universe, _main_thread_group, oop) \
469 static_field(Universe, _system_thread_group, oop) \ 440 static_field(Universe, _system_thread_group, oop) \
470 static_field(Universe, _the_empty_byte_array, typeArrayOop) \
471 static_field(Universe, _the_empty_short_array, typeArrayOop) \
472 static_field(Universe, _the_empty_int_array, typeArrayOop) \
473 static_field(Universe, _the_empty_system_obj_array, objArrayOop) \
474 static_field(Universe, _the_empty_class_klass_array, objArrayOop) \ 441 static_field(Universe, _the_empty_class_klass_array, objArrayOop) \
475 static_field(Universe, _out_of_memory_error_java_heap, oop) \ 442 static_field(Universe, _out_of_memory_error_java_heap, oop) \
476 static_field(Universe, _out_of_memory_error_perm_gen, oop) \ 443 static_field(Universe, _out_of_memory_error_perm_gen, oop) \
477 static_field(Universe, _out_of_memory_error_array_size, oop) \ 444 static_field(Universe, _out_of_memory_error_array_size, oop) \
478 static_field(Universe, _out_of_memory_error_gc_overhead_limit, oop) \ 445 static_field(Universe, _out_of_memory_error_gc_overhead_limit, oop) \
526 nonstatic_field(CardTableModRefBS, byte_map_base, jbyte*) \ 493 nonstatic_field(CardTableModRefBS, byte_map_base, jbyte*) \
527 \ 494 \
528 nonstatic_field(CardTableRS, _ct_bs, CardTableModRefBSForCTRS*) \ 495 nonstatic_field(CardTableRS, _ct_bs, CardTableModRefBSForCTRS*) \
529 \ 496 \
530 nonstatic_field(CollectedHeap, _reserved, MemRegion) \ 497 nonstatic_field(CollectedHeap, _reserved, MemRegion) \
531 nonstatic_field(SharedHeap, _perm_gen, PermGen*) \
532 nonstatic_field(CollectedHeap, _barrier_set, BarrierSet*) \ 498 nonstatic_field(CollectedHeap, _barrier_set, BarrierSet*) \
533 nonstatic_field(CollectedHeap, _defer_initial_card_mark, bool) \ 499 nonstatic_field(CollectedHeap, _defer_initial_card_mark, bool) \
534 nonstatic_field(CollectedHeap, _is_gc_active, bool) \ 500 nonstatic_field(CollectedHeap, _is_gc_active, bool) \
535 nonstatic_field(CompactibleSpace, _compaction_top, HeapWord*) \ 501 nonstatic_field(CompactibleSpace, _compaction_top, HeapWord*) \
536 nonstatic_field(CompactibleSpace, _first_dead, HeapWord*) \ 502 nonstatic_field(CompactibleSpace, _first_dead, HeapWord*) \
537 nonstatic_field(CompactibleSpace, _end_of_live, HeapWord*) \ 503 nonstatic_field(CompactibleSpace, _end_of_live, HeapWord*) \
538 \ 504 \
539 nonstatic_field(CompactingPermGen, _gen, OneContigSpaceCardGeneration*) \
540 \ 505 \
541 nonstatic_field(ContiguousSpace, _top, HeapWord*) \ 506 nonstatic_field(ContiguousSpace, _top, HeapWord*) \
542 nonstatic_field(ContiguousSpace, _concurrent_iteration_safe_limit, HeapWord*) \ 507 nonstatic_field(ContiguousSpace, _concurrent_iteration_safe_limit, HeapWord*) \
543 nonstatic_field(ContiguousSpace, _saved_mark_word, HeapWord*) \ 508 nonstatic_field(ContiguousSpace, _saved_mark_word, HeapWord*) \
544 \ 509 \
577 \ 542 \
578 nonstatic_field(OneContigSpaceCardGeneration, _min_heap_delta_bytes, size_t) \ 543 nonstatic_field(OneContigSpaceCardGeneration, _min_heap_delta_bytes, size_t) \
579 nonstatic_field(OneContigSpaceCardGeneration, _the_space, ContiguousSpace*) \ 544 nonstatic_field(OneContigSpaceCardGeneration, _the_space, ContiguousSpace*) \
580 nonstatic_field(OneContigSpaceCardGeneration, _last_gc, WaterMark) \ 545 nonstatic_field(OneContigSpaceCardGeneration, _last_gc, WaterMark) \
581 \ 546 \
582 nonstatic_field(CompactingPermGenGen, _ro_vs, VirtualSpace) \ 547 \
583 nonstatic_field(CompactingPermGenGen, _rw_vs, VirtualSpace) \
584 nonstatic_field(CompactingPermGenGen, _md_vs, VirtualSpace) \
585 nonstatic_field(CompactingPermGenGen, _mc_vs, VirtualSpace) \
586 nonstatic_field(CompactingPermGenGen, _ro_space, OffsetTableContigSpace*) \
587 nonstatic_field(CompactingPermGenGen, _rw_space, OffsetTableContigSpace*) \
588 static_field(CompactingPermGenGen, unshared_bottom, HeapWord*) \
589 static_field(CompactingPermGenGen, unshared_end, HeapWord*) \
590 static_field(CompactingPermGenGen, shared_bottom, HeapWord*) \
591 static_field(CompactingPermGenGen, readonly_bottom, HeapWord*) \
592 static_field(CompactingPermGenGen, readonly_end, HeapWord*) \
593 static_field(CompactingPermGenGen, readwrite_bottom, HeapWord*) \
594 static_field(CompactingPermGenGen, readwrite_end, HeapWord*) \
595 static_field(CompactingPermGenGen, miscdata_bottom, HeapWord*) \
596 static_field(CompactingPermGenGen, miscdata_end, HeapWord*) \
597 static_field(CompactingPermGenGen, misccode_bottom, HeapWord*) \
598 static_field(CompactingPermGenGen, misccode_end, HeapWord*) \
599 static_field(CompactingPermGenGen, shared_end, HeapWord*) \
600 \
601 nonstatic_field(PermGen, _capacity_expansion_limit, size_t) \
602 \
603 nonstatic_field(PermanentGenerationSpec, _name, PermGen::Name) \
604 nonstatic_field(PermanentGenerationSpec, _init_size, size_t) \
605 nonstatic_field(PermanentGenerationSpec, _max_size, size_t) \
606 \ 548 \
607 nonstatic_field(Space, _bottom, HeapWord*) \ 549 nonstatic_field(Space, _bottom, HeapWord*) \
608 nonstatic_field(Space, _end, HeapWord*) \ 550 nonstatic_field(Space, _end, HeapWord*) \
609 \ 551 \
610 nonstatic_field(TenuredGeneration, _shrink_factor, size_t) \ 552 nonstatic_field(TenuredGeneration, _shrink_factor, size_t) \
675 static_field(SystemDictionary, _dictionary, Dictionary*) \ 617 static_field(SystemDictionary, _dictionary, Dictionary*) \
676 static_field(SystemDictionary, _placeholders, PlaceholderTable*) \ 618 static_field(SystemDictionary, _placeholders, PlaceholderTable*) \
677 static_field(SystemDictionary, _shared_dictionary, Dictionary*) \ 619 static_field(SystemDictionary, _shared_dictionary, Dictionary*) \
678 static_field(SystemDictionary, _system_loader_lock_obj, oop) \ 620 static_field(SystemDictionary, _system_loader_lock_obj, oop) \
679 static_field(SystemDictionary, _loader_constraints, LoaderConstraintTable*) \ 621 static_field(SystemDictionary, _loader_constraints, LoaderConstraintTable*) \
680 static_field(SystemDictionary, WK_KLASS(Object_klass), klassOop) \ 622 static_field(SystemDictionary, WK_KLASS(Object_klass), Klass*) \
681 static_field(SystemDictionary, WK_KLASS(String_klass), klassOop) \ 623 static_field(SystemDictionary, WK_KLASS(String_klass), Klass*) \
682 static_field(SystemDictionary, WK_KLASS(Class_klass), klassOop) \ 624 static_field(SystemDictionary, WK_KLASS(Class_klass), Klass*) \
683 static_field(SystemDictionary, WK_KLASS(Cloneable_klass), klassOop) \ 625 static_field(SystemDictionary, WK_KLASS(Cloneable_klass), Klass*) \
684 static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), klassOop) \ 626 static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), Klass*) \
685 static_field(SystemDictionary, WK_KLASS(Serializable_klass), klassOop) \ 627 static_field(SystemDictionary, WK_KLASS(Serializable_klass), Klass*) \
686 static_field(SystemDictionary, WK_KLASS(System_klass), klassOop) \ 628 static_field(SystemDictionary, WK_KLASS(System_klass), Klass*) \
687 static_field(SystemDictionary, WK_KLASS(Throwable_klass), klassOop) \ 629 static_field(SystemDictionary, WK_KLASS(Throwable_klass), Klass*) \
688 static_field(SystemDictionary, WK_KLASS(ThreadDeath_klass), klassOop) \ 630 static_field(SystemDictionary, WK_KLASS(ThreadDeath_klass), Klass*) \
689 static_field(SystemDictionary, WK_KLASS(Error_klass), klassOop) \ 631 static_field(SystemDictionary, WK_KLASS(Error_klass), Klass*) \
690 static_field(SystemDictionary, WK_KLASS(Exception_klass), klassOop) \ 632 static_field(SystemDictionary, WK_KLASS(Exception_klass), Klass*) \
691 static_field(SystemDictionary, WK_KLASS(RuntimeException_klass), klassOop) \ 633 static_field(SystemDictionary, WK_KLASS(RuntimeException_klass), Klass*) \
692 static_field(SystemDictionary, WK_KLASS(ClassNotFoundException_klass), klassOop) \ 634 static_field(SystemDictionary, WK_KLASS(ClassNotFoundException_klass), Klass*) \
693 static_field(SystemDictionary, WK_KLASS(NoClassDefFoundError_klass), klassOop) \ 635 static_field(SystemDictionary, WK_KLASS(NoClassDefFoundError_klass), Klass*) \
694 static_field(SystemDictionary, WK_KLASS(LinkageError_klass), klassOop) \ 636 static_field(SystemDictionary, WK_KLASS(LinkageError_klass), Klass*) \
695 static_field(SystemDictionary, WK_KLASS(ClassCastException_klass), klassOop) \ 637 static_field(SystemDictionary, WK_KLASS(ClassCastException_klass), Klass*) \
696 static_field(SystemDictionary, WK_KLASS(ArrayStoreException_klass), klassOop) \ 638 static_field(SystemDictionary, WK_KLASS(ArrayStoreException_klass), Klass*) \
697 static_field(SystemDictionary, WK_KLASS(VirtualMachineError_klass), klassOop) \ 639 static_field(SystemDictionary, WK_KLASS(VirtualMachineError_klass), Klass*) \
698 static_field(SystemDictionary, WK_KLASS(OutOfMemoryError_klass), klassOop) \ 640 static_field(SystemDictionary, WK_KLASS(OutOfMemoryError_klass), Klass*) \
699 static_field(SystemDictionary, WK_KLASS(StackOverflowError_klass), klassOop) \ 641 static_field(SystemDictionary, WK_KLASS(StackOverflowError_klass), Klass*) \
700 static_field(SystemDictionary, WK_KLASS(ProtectionDomain_klass), klassOop) \ 642 static_field(SystemDictionary, WK_KLASS(ProtectionDomain_klass), Klass*) \
701 static_field(SystemDictionary, WK_KLASS(AccessControlContext_klass), klassOop) \ 643 static_field(SystemDictionary, WK_KLASS(AccessControlContext_klass), Klass*) \
702 static_field(SystemDictionary, WK_KLASS(Reference_klass), klassOop) \ 644 static_field(SystemDictionary, WK_KLASS(Reference_klass), Klass*) \
703 static_field(SystemDictionary, WK_KLASS(SoftReference_klass), klassOop) \ 645 static_field(SystemDictionary, WK_KLASS(SoftReference_klass), Klass*) \
704 static_field(SystemDictionary, WK_KLASS(WeakReference_klass), klassOop) \ 646 static_field(SystemDictionary, WK_KLASS(WeakReference_klass), Klass*) \
705 static_field(SystemDictionary, WK_KLASS(FinalReference_klass), klassOop) \ 647 static_field(SystemDictionary, WK_KLASS(FinalReference_klass), Klass*) \
706 static_field(SystemDictionary, WK_KLASS(PhantomReference_klass), klassOop) \ 648 static_field(SystemDictionary, WK_KLASS(PhantomReference_klass), Klass*) \
707 static_field(SystemDictionary, WK_KLASS(Finalizer_klass), klassOop) \ 649 static_field(SystemDictionary, WK_KLASS(Finalizer_klass), Klass*) \
708 static_field(SystemDictionary, WK_KLASS(Thread_klass), klassOop) \ 650 static_field(SystemDictionary, WK_KLASS(Thread_klass), Klass*) \
709 static_field(SystemDictionary, WK_KLASS(ThreadGroup_klass), klassOop) \ 651 static_field(SystemDictionary, WK_KLASS(ThreadGroup_klass), Klass*) \
710 static_field(SystemDictionary, WK_KLASS(Properties_klass), klassOop) \ 652 static_field(SystemDictionary, WK_KLASS(Properties_klass), Klass*) \
711 static_field(SystemDictionary, WK_KLASS(StringBuffer_klass), klassOop) \ 653 static_field(SystemDictionary, WK_KLASS(StringBuffer_klass), Klass*) \
712 static_field(SystemDictionary, WK_KLASS(MethodHandle_klass), klassOop) \ 654 static_field(SystemDictionary, WK_KLASS(MethodHandle_klass), Klass*) \
713 static_field(SystemDictionary, _box_klasses[0], klassOop) \ 655 static_field(SystemDictionary, _box_klasses[0], Klass*) \
714 static_field(SystemDictionary, _java_system_loader, oop) \ 656 static_field(SystemDictionary, _java_system_loader, oop) \
715 \ 657 \
716 /*************/ \ 658 /*************/ \
717 /* vmSymbols */ \ 659 /* vmSymbols */ \
718 /*************/ \ 660 /*************/ \
746 \ 688 \
747 /*******************/ \ 689 /*******************/ \
748 /* DictionaryEntry */ \ 690 /* DictionaryEntry */ \
749 /*******************/ \ 691 /*******************/ \
750 \ 692 \
751 nonstatic_field(DictionaryEntry, _loader, oop) \ 693 nonstatic_field(DictionaryEntry, _loader_data, ClassLoaderData*) \
752 nonstatic_field(DictionaryEntry, _pd_set, ProtectionDomainEntry*) \ 694 nonstatic_field(DictionaryEntry, _pd_set, ProtectionDomainEntry*) \
753 \ 695 \
754 /********************/ \ 696 /********************/ \
755 \ 697 \
756 nonstatic_field(PlaceholderEntry, _loader, oop) \ 698 nonstatic_field(PlaceholderEntry, _loader_data, ClassLoaderData*) \
757 \ 699 \
758 /**************************/ \ 700 /**************************/ \
759 /* ProctectionDomainEntry */ \ 701 /* ProctectionDomainEntry */ \
760 /**************************/ \ 702 /**************************/ \
761 \ 703 \
767 /*************************/ \ 709 /*************************/ \
768 \ 710 \
769 nonstatic_field(LoaderConstraintEntry, _name, Symbol*) \ 711 nonstatic_field(LoaderConstraintEntry, _name, Symbol*) \
770 nonstatic_field(LoaderConstraintEntry, _num_loaders, int) \ 712 nonstatic_field(LoaderConstraintEntry, _num_loaders, int) \
771 nonstatic_field(LoaderConstraintEntry, _max_loaders, int) \ 713 nonstatic_field(LoaderConstraintEntry, _max_loaders, int) \
772 nonstatic_field(LoaderConstraintEntry, _loaders, oop*) \ 714 nonstatic_field(LoaderConstraintEntry, _loaders, ClassLoaderData**) \
715 \
716 nonstatic_field(ClassLoaderData, _class_loader, oop) \
717 nonstatic_field(ClassLoaderData, _next, ClassLoaderData*) \
718 \
719 static_field(ClassLoaderDataGraph, _head, ClassLoaderData*) \
720 nonstatic_field(ClassLoaderDataGraph, _unloading, ClassLoaderData*) \
773 \ 721 \
774 /*******************/ \ 722 /*******************/ \
775 /* GrowableArrays */ \ 723 /* GrowableArrays */ \
776 /*******************/ \ 724 /*******************/ \
777 \ 725 \
851 \ 799 \
852 /**************************************************/ \ 800 /**************************************************/ \
853 /* NMethods (NOTE: incomplete, but only a little) */ \ 801 /* NMethods (NOTE: incomplete, but only a little) */ \
854 /**************************************************/ \ 802 /**************************************************/ \
855 \ 803 \
856 nonstatic_field(nmethod, _method, methodOop) \ 804 nonstatic_field(nmethod, _method, Method*) \
857 nonstatic_field(nmethod, _entry_bci, int) \ 805 nonstatic_field(nmethod, _entry_bci, int) \
858 nonstatic_field(nmethod, _osr_link, nmethod*) \ 806 nonstatic_field(nmethod, _osr_link, nmethod*) \
859 nonstatic_field(nmethod, _scavenge_root_link, nmethod*) \ 807 nonstatic_field(nmethod, _scavenge_root_link, nmethod*) \
860 nonstatic_field(nmethod, _scavenge_root_state, jbyte) \ 808 nonstatic_field(nmethod, _scavenge_root_state, jbyte) \
861 nonstatic_field(nmethod, _state, unsigned char) \ 809 nonstatic_field(nmethod, _state, unsigned char) \
864 nonstatic_field(nmethod, _deoptimize_mh_offset, int) \ 812 nonstatic_field(nmethod, _deoptimize_mh_offset, int) \
865 nonstatic_field(nmethod, _orig_pc_offset, int) \ 813 nonstatic_field(nmethod, _orig_pc_offset, int) \
866 nonstatic_field(nmethod, _stub_offset, int) \ 814 nonstatic_field(nmethod, _stub_offset, int) \
867 nonstatic_field(nmethod, _consts_offset, int) \ 815 nonstatic_field(nmethod, _consts_offset, int) \
868 nonstatic_field(nmethod, _oops_offset, int) \ 816 nonstatic_field(nmethod, _oops_offset, int) \
817 nonstatic_field(nmethod, _metadata_offset, int) \
869 nonstatic_field(nmethod, _scopes_data_offset, int) \ 818 nonstatic_field(nmethod, _scopes_data_offset, int) \
870 nonstatic_field(nmethod, _scopes_pcs_offset, int) \ 819 nonstatic_field(nmethod, _scopes_pcs_offset, int) \
871 nonstatic_field(nmethod, _dependencies_offset, int) \ 820 nonstatic_field(nmethod, _dependencies_offset, int) \
872 nonstatic_field(nmethod, _handler_table_offset, int) \ 821 nonstatic_field(nmethod, _handler_table_offset, int) \
873 nonstatic_field(nmethod, _nul_chk_table_offset, int) \ 822 nonstatic_field(nmethod, _nul_chk_table_offset, int) \
916 nonstatic_field(NamedThread, _processed_thread, JavaThread*) \ 865 nonstatic_field(NamedThread, _processed_thread, JavaThread*) \
917 nonstatic_field(JavaThread, _next, JavaThread*) \ 866 nonstatic_field(JavaThread, _next, JavaThread*) \
918 nonstatic_field(JavaThread, _threadObj, oop) \ 867 nonstatic_field(JavaThread, _threadObj, oop) \
919 nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \ 868 nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \
920 nonstatic_field(JavaThread, _vm_result, oop) \ 869 nonstatic_field(JavaThread, _vm_result, oop) \
921 nonstatic_field(JavaThread, _vm_result_2, oop) \ 870 nonstatic_field(JavaThread, _vm_result_2, Metadata*) \
922 nonstatic_field(JavaThread, _pending_async_exception, oop) \ 871 nonstatic_field(JavaThread, _pending_async_exception, oop) \
923 volatile_nonstatic_field(JavaThread, _exception_oop, oop) \ 872 volatile_nonstatic_field(JavaThread, _exception_oop, oop) \
924 volatile_nonstatic_field(JavaThread, _exception_pc, address) \ 873 volatile_nonstatic_field(JavaThread, _exception_pc, address) \
925 nonstatic_field(JavaThread, _is_compiling, bool) \ 874 nonstatic_field(JavaThread, _is_compiling, bool) \
926 nonstatic_field(JavaThread, _special_runtime_exit_condition, JavaThread::AsyncRequests) \ 875 nonstatic_field(JavaThread, _special_runtime_exit_condition, JavaThread::AsyncRequests) \
1006 nonstatic_field(ciEnv, _factory, ciObjectFactory*) \ 955 nonstatic_field(ciEnv, _factory, ciObjectFactory*) \
1007 nonstatic_field(ciEnv, _dependencies, Dependencies*) \ 956 nonstatic_field(ciEnv, _dependencies, Dependencies*) \
1008 nonstatic_field(ciEnv, _task, CompileTask*) \ 957 nonstatic_field(ciEnv, _task, CompileTask*) \
1009 nonstatic_field(ciEnv, _arena, Arena*) \ 958 nonstatic_field(ciEnv, _arena, Arena*) \
1010 \ 959 \
960 nonstatic_field(ciBaseObject, _ident, uint) \
961 \
1011 nonstatic_field(ciObject, _handle, jobject) \ 962 nonstatic_field(ciObject, _handle, jobject) \
1012 nonstatic_field(ciObject, _klass, ciKlass*) \ 963 nonstatic_field(ciObject, _klass, ciKlass*) \
1013 nonstatic_field(ciObject, _ident, uint) \ 964 \
1014 \ 965 nonstatic_field(ciMetadata, _metadata, Metadata*) \
1015 nonstatic_field(ciSymbol, _ident, uint) \ 966 \
1016 nonstatic_field(ciSymbol, _symbol, Symbol*) \ 967 nonstatic_field(ciSymbol, _symbol, Symbol*) \
1017 \ 968 \
1018 nonstatic_field(ciType, _basic_type, BasicType) \ 969 nonstatic_field(ciType, _basic_type, BasicType) \
1019 \ 970 \
1020 nonstatic_field(ciKlass, _name, ciSymbol*) \ 971 nonstatic_field(ciKlass, _name, ciSymbol*) \
1022 nonstatic_field(ciArrayKlass, _dimension, jint) \ 973 nonstatic_field(ciArrayKlass, _dimension, jint) \
1023 \ 974 \
1024 nonstatic_field(ciObjArrayKlass, _element_klass, ciKlass*) \ 975 nonstatic_field(ciObjArrayKlass, _element_klass, ciKlass*) \
1025 nonstatic_field(ciObjArrayKlass, _base_element_klass, ciKlass*) \ 976 nonstatic_field(ciObjArrayKlass, _base_element_klass, ciKlass*) \
1026 \ 977 \
1027 nonstatic_field(ciInstanceKlass, _init_state, instanceKlass::ClassState) \ 978 nonstatic_field(ciInstanceKlass, _init_state, InstanceKlass::ClassState) \
1028 nonstatic_field(ciInstanceKlass, _is_shared, bool) \ 979 nonstatic_field(ciInstanceKlass, _is_shared, bool) \
1029 \ 980 \
1030 nonstatic_field(ciMethod, _interpreter_invocation_count, int) \ 981 nonstatic_field(ciMethod, _interpreter_invocation_count, int) \
1031 nonstatic_field(ciMethod, _interpreter_throwout_count, int) \ 982 nonstatic_field(ciMethod, _interpreter_throwout_count, int) \
1032 \ 983 \
1038 nonstatic_field(ciMethodData, _eflags, intx) \ 989 nonstatic_field(ciMethodData, _eflags, intx) \
1039 nonstatic_field(ciMethodData, _arg_local, intx) \ 990 nonstatic_field(ciMethodData, _arg_local, intx) \
1040 nonstatic_field(ciMethodData, _arg_stack, intx) \ 991 nonstatic_field(ciMethodData, _arg_stack, intx) \
1041 nonstatic_field(ciMethodData, _arg_returned, intx) \ 992 nonstatic_field(ciMethodData, _arg_returned, intx) \
1042 nonstatic_field(ciMethodData, _current_mileage, int) \ 993 nonstatic_field(ciMethodData, _current_mileage, int) \
1043 nonstatic_field(ciMethodData, _orig, methodDataOopDesc) \ 994 nonstatic_field(ciMethodData, _orig, MethodData) \
1044 \ 995 \
1045 nonstatic_field(ciField, _holder, ciInstanceKlass*) \ 996 nonstatic_field(ciField, _holder, ciInstanceKlass*) \
1046 nonstatic_field(ciField, _name, ciSymbol*) \ 997 nonstatic_field(ciField, _name, ciSymbol*) \
1047 nonstatic_field(ciField, _signature, ciSymbol*) \ 998 nonstatic_field(ciField, _signature, ciSymbol*) \
1048 nonstatic_field(ciField, _offset, int) \ 999 nonstatic_field(ciField, _offset, int) \
1049 nonstatic_field(ciField, _is_constant, bool) \ 1000 nonstatic_field(ciField, _is_constant, bool) \
1050 nonstatic_field(ciField, _constant_value, ciConstant) \ 1001 nonstatic_field(ciField, _constant_value, ciConstant) \
1051 \ 1002 \
1052 nonstatic_field(ciObjectFactory, _ci_objects, GrowableArray<ciObject*>*) \ 1003 nonstatic_field(ciObjectFactory, _ci_metadata, GrowableArray<ciMetadata*>*) \
1053 nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>*) \ 1004 nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>*) \
1054 nonstatic_field(ciObjectFactory, _unloaded_methods, GrowableArray<ciMethod*>*) \ 1005 nonstatic_field(ciObjectFactory, _unloaded_methods, GrowableArray<ciMethod*>*) \
1055 \ 1006 \
1056 nonstatic_field(ciConstant, _type, BasicType) \ 1007 nonstatic_field(ciConstant, _type, BasicType) \
1057 nonstatic_field(ciConstant, _value._int, jint) \ 1008 nonstatic_field(ciConstant, _value._int, jint) \
1232 static_field(Arguments, _num_jvm_flags, int) \ 1183 static_field(Arguments, _num_jvm_flags, int) \
1233 static_field(Arguments, _jvm_args_array, char**) \ 1184 static_field(Arguments, _jvm_args_array, char**) \
1234 static_field(Arguments, _num_jvm_args, int) \ 1185 static_field(Arguments, _num_jvm_args, int) \
1235 static_field(Arguments, _java_command, char*) \ 1186 static_field(Arguments, _java_command, char*) \
1236 \ 1187 \
1188 /************/ \
1189 /* Array<T> */ \
1190 /************/ \
1191 \
1192 nonstatic_field(Array<int>, _length, int) \
1193 unchecked_nonstatic_field(Array<int>, _data, sizeof(int)) \
1194 unchecked_nonstatic_field(Array<u1>, _data, sizeof(u1)) \
1195 unchecked_nonstatic_field(Array<u2>, _data, sizeof(u2)) \
1196 unchecked_nonstatic_field(Array<Method*>, _data, sizeof(Method*)) \
1197 unchecked_nonstatic_field(Array<Klass*>, _data, sizeof(Klass*)) \
1198 \
1237 /*********************************/ \ 1199 /*********************************/ \
1238 /* java_lang_Class fields */ \ 1200 /* java_lang_Class fields */ \
1239 /*********************************/ \ 1201 /*********************************/ \
1240 \ 1202 \
1241 static_field(java_lang_Class, _klass_offset, int) \ 1203 static_field(java_lang_Class, _klass_offset, int) \
1246 \ 1208 \
1247 /************************/ \ 1209 /************************/ \
1248 /* Miscellaneous fields */ \ 1210 /* Miscellaneous fields */ \
1249 /************************/ \ 1211 /************************/ \
1250 \ 1212 \
1251 nonstatic_field(CompileTask, _method, jobject) \ 1213 nonstatic_field(CompileTask, _method, Method*) \
1252 nonstatic_field(CompileTask, _osr_bci, int) \ 1214 nonstatic_field(CompileTask, _osr_bci, int) \
1253 nonstatic_field(CompileTask, _comp_level, int) \ 1215 nonstatic_field(CompileTask, _comp_level, int) \
1254 nonstatic_field(CompileTask, _compile_id, uint) \ 1216 nonstatic_field(CompileTask, _compile_id, uint) \
1255 nonstatic_field(CompileTask, _next, CompileTask*) \ 1217 nonstatic_field(CompileTask, _next, CompileTask*) \
1256 nonstatic_field(CompileTask, _prev, CompileTask*) \ 1218 nonstatic_field(CompileTask, _prev, CompileTask*) \
1260 nonstatic_field(vframeArray, _caller, frame) \ 1222 nonstatic_field(vframeArray, _caller, frame) \
1261 nonstatic_field(vframeArray, _frames, int) \ 1223 nonstatic_field(vframeArray, _frames, int) \
1262 \ 1224 \
1263 nonstatic_field(vframeArrayElement, _frame, frame) \ 1225 nonstatic_field(vframeArrayElement, _frame, frame) \
1264 nonstatic_field(vframeArrayElement, _bci, int) \ 1226 nonstatic_field(vframeArrayElement, _bci, int) \
1265 nonstatic_field(vframeArrayElement, _method, methodOop) \ 1227 nonstatic_field(vframeArrayElement, _method, Method*) \
1266 \ 1228 \
1267 nonstatic_field(AccessFlags, _flags, jint) \ 1229 nonstatic_field(AccessFlags, _flags, jint) \
1268 nonstatic_field(elapsedTimer, _counter, jlong) \ 1230 nonstatic_field(elapsedTimer, _counter, jlong) \
1269 nonstatic_field(elapsedTimer, _active, bool) \ 1231 nonstatic_field(elapsedTimer, _active, bool) \
1270 nonstatic_field(InvocationCounter, _counter, unsigned int) 1232 nonstatic_field(InvocationCounter, _counter, unsigned int)
1358 declare_unsigned_integer_type(unsigned short) \ 1320 declare_unsigned_integer_type(unsigned short) \
1359 declare_unsigned_integer_type(jushort) \ 1321 declare_unsigned_integer_type(jushort) \
1360 declare_unsigned_integer_type(unsigned long) \ 1322 declare_unsigned_integer_type(unsigned long) \
1361 /* The compiler thinks this is a different type than */ \ 1323 /* The compiler thinks this is a different type than */ \
1362 /* unsigned short on Win32 */ \ 1324 /* unsigned short on Win32 */ \
1325 declare_unsigned_integer_type(u1) \
1363 declare_unsigned_integer_type(u2) \ 1326 declare_unsigned_integer_type(u2) \
1364 declare_unsigned_integer_type(u1) \
1365 declare_unsigned_integer_type(unsigned) \ 1327 declare_unsigned_integer_type(unsigned) \
1366 \ 1328 \
1367 /*****************************/ \ 1329 /*****************************/ \
1368 /* C primitive pointer types */ \ 1330 /* C primitive pointer types */ \
1369 /*****************************/ \ 1331 /*****************************/ \
1370 \ 1332 \
1333 declare_toplevel_type(void*) \
1371 declare_toplevel_type(int*) \ 1334 declare_toplevel_type(int*) \
1372 declare_toplevel_type(char*) \ 1335 declare_toplevel_type(char*) \
1373 declare_toplevel_type(char**) \ 1336 declare_toplevel_type(char**) \
1374 declare_toplevel_type(u_char*) \ 1337 declare_toplevel_type(u_char*) \
1375 declare_toplevel_type(unsigned char*) \ 1338 declare_toplevel_type(unsigned char*) \
1387 declare_unsigned_integer_type(uintx) \ 1350 declare_unsigned_integer_type(uintx) \
1388 declare_unsigned_integer_type(uintptr_t) \ 1351 declare_unsigned_integer_type(uintptr_t) \
1389 declare_unsigned_integer_type(uint32_t) \ 1352 declare_unsigned_integer_type(uint32_t) \
1390 declare_unsigned_integer_type(uint64_t) \ 1353 declare_unsigned_integer_type(uint64_t) \
1391 \ 1354 \
1392 /*******************************************************************************/ \ 1355 /******************************************/ \
1393 /* OopDesc and Klass hierarchies (NOTE: missing methodDataOop-related classes) */ \ 1356 /* OopDesc hierarchy (NOTE: some missing) */ \
1394 /*******************************************************************************/ \ 1357 /******************************************/ \
1395 \ 1358 \
1396 declare_toplevel_type(oopDesc) \ 1359 declare_toplevel_type(oopDesc) \
1397 declare_toplevel_type(Klass_vtbl) \ 1360 declare_type(arrayOopDesc, oopDesc) \
1398 declare_type(Klass, Klass_vtbl) \ 1361 declare_type(objArrayOopDesc, arrayOopDesc) \
1362 declare_type(instanceOopDesc, oopDesc) \
1363 declare_type(markOopDesc, oopDesc) \
1364 \
1365 /**************************************************/ \
1366 /* MetadataOopDesc hierarchy (NOTE: some missing) */ \
1367 /**************************************************/ \
1368 \
1369 declare_toplevel_type(CompiledICHolder) \
1370 declare_toplevel_type(MetaspaceObj) \
1371 declare_type(Metadata, MetaspaceObj) \
1372 declare_type(Klass, Metadata) \
1399 declare_type(arrayKlass, Klass) \ 1373 declare_type(arrayKlass, Klass) \
1400 declare_type(arrayKlassKlass, klassKlass) \
1401 declare_type(arrayOopDesc, oopDesc) \
1402 declare_type(compiledICHolderKlass, Klass) \
1403 declare_type(compiledICHolderOopDesc, oopDesc) \
1404 declare_type(constantPoolKlass, Klass) \
1405 declare_type(constantPoolOopDesc, oopDesc) \
1406 declare_type(constantPoolCacheKlass, Klass) \
1407 declare_type(constantPoolCacheOopDesc, oopDesc) \
1408 declare_type(instanceKlass, Klass) \
1409 declare_type(instanceKlassKlass, klassKlass) \
1410 declare_type(instanceOopDesc, oopDesc) \
1411 declare_type(instanceMirrorKlass, instanceKlass) \
1412 declare_type(instanceRefKlass, instanceKlass) \
1413 declare_type(klassKlass, Klass) \
1414 declare_type(klassOopDesc, oopDesc) \
1415 declare_type(markOopDesc, oopDesc) \
1416 declare_type(methodDataKlass, Klass) \
1417 declare_type(methodDataOopDesc, oopDesc) \
1418 declare_type(methodKlass, Klass) \
1419 declare_type(constMethodKlass, Klass) \
1420 declare_type(methodOopDesc, oopDesc) \
1421 declare_type(objArrayKlass, arrayKlass) \ 1374 declare_type(objArrayKlass, arrayKlass) \
1422 declare_type(objArrayKlassKlass, arrayKlassKlass) \
1423 declare_type(objArrayOopDesc, arrayOopDesc) \
1424 declare_type(constMethodOopDesc, oopDesc) \
1425 declare_type(typeArrayKlass, arrayKlass) \ 1375 declare_type(typeArrayKlass, arrayKlass) \
1426 declare_type(typeArrayKlassKlass, arrayKlassKlass) \ 1376 declare_type(InstanceKlass, Klass) \
1427 declare_type(typeArrayOopDesc, arrayOopDesc) \ 1377 declare_type(instanceClassLoaderKlass, InstanceKlass) \
1378 declare_type(instanceMirrorKlass, InstanceKlass) \
1379 declare_type(instanceRefKlass, InstanceKlass) \
1380 declare_type(ConstantPool, Metadata) \
1381 declare_type(ConstantPoolCache, MetaspaceObj) \
1382 declare_type(MethodData, Metadata) \
1383 declare_type(Method, Metadata) \
1384 declare_type(ConstMethod, MetaspaceObj) \
1385 \
1428 declare_toplevel_type(Symbol) \ 1386 declare_toplevel_type(Symbol) \
1429 declare_toplevel_type(Symbol*) \ 1387 declare_toplevel_type(Symbol*) \
1388 declare_toplevel_type(volatile Metadata*) \
1430 \ 1389 \
1431 declare_toplevel_type(nmethodBucket) \ 1390 declare_toplevel_type(nmethodBucket) \
1432 \ 1391 \
1433 /********/ \ 1392 /********/ \
1434 /* Oops */ \ 1393 /* Oops */ \
1435 /********/ \ 1394 /********/ \
1436 \ 1395 \
1437 declare_oop_type(constantPoolOop) \
1438 declare_oop_type(constantPoolCacheOop) \
1439 declare_oop_type(klassOop) \
1440 declare_oop_type(markOop) \ 1396 declare_oop_type(markOop) \
1441 declare_oop_type(methodOop) \
1442 declare_oop_type(methodDataOop) \
1443 declare_oop_type(objArrayOop) \ 1397 declare_oop_type(objArrayOop) \
1444 declare_oop_type(oop) \ 1398 declare_oop_type(oop) \
1445 declare_oop_type(narrowOop) \ 1399 declare_oop_type(narrowOop) \
1446 declare_oop_type(wideKlassOop) \
1447 declare_oop_type(constMethodOop) \
1448 declare_oop_type(typeArrayOop) \ 1400 declare_oop_type(typeArrayOop) \
1449 \ 1401 \
1450 /*************************************/ \ 1402 /*************************************/ \
1451 /* MethodOop-related data structures */ \ 1403 /* MethodOop-related data structures */ \
1452 /*************************************/ \ 1404 /*************************************/ \
1453 \ 1405 \
1454 declare_toplevel_type(CheckedExceptionElement) \ 1406 declare_toplevel_type(CheckedExceptionElement) \
1455 declare_toplevel_type(LocalVariableTableElement) \ 1407 declare_toplevel_type(LocalVariableTableElement) \
1456 declare_toplevel_type(ExceptionTableElement) \ 1408 declare_toplevel_type(ExceptionTableElement) \
1409 \
1410 declare_toplevel_type(ClassLoaderData) \
1411 declare_toplevel_type(ClassLoaderDataGraph) \
1457 \ 1412 \
1458 /******************************************/ \ 1413 /******************************************/ \
1459 /* Generation and space hierarchies */ \ 1414 /* Generation and space hierarchies */ \
1460 /* (needed for run-time type information) */ \ 1415 /* (needed for run-time type information) */ \
1461 /******************************************/ \ 1416 /******************************************/ \
1466 declare_toplevel_type(Generation) \ 1421 declare_toplevel_type(Generation) \
1467 declare_type(DefNewGeneration, Generation) \ 1422 declare_type(DefNewGeneration, Generation) \
1468 declare_type(CardGeneration, Generation) \ 1423 declare_type(CardGeneration, Generation) \
1469 declare_type(OneContigSpaceCardGeneration, CardGeneration) \ 1424 declare_type(OneContigSpaceCardGeneration, CardGeneration) \
1470 declare_type(TenuredGeneration, OneContigSpaceCardGeneration) \ 1425 declare_type(TenuredGeneration, OneContigSpaceCardGeneration) \
1471 declare_type(CompactingPermGenGen, OneContigSpaceCardGeneration) \
1472 declare_toplevel_type(Space) \ 1426 declare_toplevel_type(Space) \
1473 declare_toplevel_type(BitMap) \ 1427 declare_toplevel_type(BitMap) \
1474 declare_type(CompactibleSpace, Space) \ 1428 declare_type(CompactibleSpace, Space) \
1475 declare_type(ContiguousSpace, CompactibleSpace) \ 1429 declare_type(ContiguousSpace, CompactibleSpace) \
1476 declare_type(EdenSpace, ContiguousSpace) \ 1430 declare_type(EdenSpace, ContiguousSpace) \
1477 declare_type(OffsetTableContigSpace, ContiguousSpace) \ 1431 declare_type(OffsetTableContigSpace, ContiguousSpace) \
1478 declare_type(TenuredSpace, OffsetTableContigSpace) \ 1432 declare_type(TenuredSpace, OffsetTableContigSpace) \
1479 declare_type(ContigPermSpace, OffsetTableContigSpace) \
1480 declare_toplevel_type(PermGen) \
1481 declare_type(CompactingPermGen, PermGen) \
1482 declare_toplevel_type(BarrierSet) \ 1433 declare_toplevel_type(BarrierSet) \
1483 declare_type(ModRefBarrierSet, BarrierSet) \ 1434 declare_type(ModRefBarrierSet, BarrierSet) \
1484 declare_type(CardTableModRefBS, ModRefBarrierSet) \ 1435 declare_type(CardTableModRefBS, ModRefBarrierSet) \
1485 declare_type(CardTableModRefBSForCTRS, CardTableModRefBS) \ 1436 declare_type(CardTableModRefBSForCTRS, CardTableModRefBS) \
1486 declare_toplevel_type(GenRemSet) \ 1437 declare_toplevel_type(GenRemSet) \
1496 declare_toplevel_type(ageTable) \ 1447 declare_toplevel_type(ageTable) \
1497 declare_toplevel_type(Generation::StatRecord) \ 1448 declare_toplevel_type(Generation::StatRecord) \
1498 declare_toplevel_type(GenerationSpec) \ 1449 declare_toplevel_type(GenerationSpec) \
1499 declare_toplevel_type(HeapWord) \ 1450 declare_toplevel_type(HeapWord) \
1500 declare_toplevel_type(MemRegion) \ 1451 declare_toplevel_type(MemRegion) \
1501 declare_toplevel_type(PermanentGenerationSpec) \
1502 declare_toplevel_type(ThreadLocalAllocBuffer) \ 1452 declare_toplevel_type(ThreadLocalAllocBuffer) \
1503 declare_toplevel_type(VirtualSpace) \ 1453 declare_toplevel_type(VirtualSpace) \
1504 declare_toplevel_type(WaterMark) \ 1454 declare_toplevel_type(WaterMark) \
1505 \ 1455 \
1506 /* Pointers to Garbage Collection types */ \ 1456 /* Pointers to Garbage Collection types */ \
1522 declare_toplevel_type(GenerationSpec**) \ 1472 declare_toplevel_type(GenerationSpec**) \
1523 declare_toplevel_type(HeapWord*) \ 1473 declare_toplevel_type(HeapWord*) \
1524 declare_toplevel_type(MemRegion*) \ 1474 declare_toplevel_type(MemRegion*) \
1525 declare_toplevel_type(OffsetTableContigSpace*) \ 1475 declare_toplevel_type(OffsetTableContigSpace*) \
1526 declare_toplevel_type(OneContigSpaceCardGeneration*) \ 1476 declare_toplevel_type(OneContigSpaceCardGeneration*) \
1527 declare_toplevel_type(PermGen*) \
1528 declare_toplevel_type(Space*) \ 1477 declare_toplevel_type(Space*) \
1529 declare_toplevel_type(ThreadLocalAllocBuffer*) \ 1478 declare_toplevel_type(ThreadLocalAllocBuffer*) \
1530 \ 1479 \
1531 /************************/ \ 1480 /************************/ \
1532 /* PerfMemory - jvmstat */ \ 1481 /* PerfMemory - jvmstat */ \
1543 \ 1492 \
1544 declare_toplevel_type(BasicHashtable<mtInternal>) \ 1493 declare_toplevel_type(BasicHashtable<mtInternal>) \
1545 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \ 1494 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
1546 declare_type(SymbolTable, SymbolHashtable) \ 1495 declare_type(SymbolTable, SymbolHashtable) \
1547 declare_type(StringTable, StringHashtable) \ 1496 declare_type(StringTable, StringHashtable) \
1548 declare_type(LoaderConstraintTable, klassOopHashtable) \ 1497 declare_type(LoaderConstraintTable, KlassHashtable) \
1549 declare_type(klassOopTwoOopHashtable, klassOopHashtable) \ 1498 declare_type(KlassTwoOopHashtable, KlassHashtable) \
1550 declare_type(Dictionary, klassOopTwoOopHashtable) \ 1499 declare_type(Dictionary, KlassTwoOopHashtable) \
1551 declare_type(PlaceholderTable, SymbolTwoOopHashtable) \ 1500 declare_type(PlaceholderTable, SymbolTwoOopHashtable) \
1552 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \ 1501 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
1553 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \ 1502 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
1554 declare_type(DictionaryEntry, klassHashtableEntry) \ 1503 declare_type(DictionaryEntry, KlassHashtableEntry) \
1555 declare_type(PlaceholderEntry, SymbolHashtableEntry) \ 1504 declare_type(PlaceholderEntry, SymbolHashtableEntry) \
1556 declare_type(LoaderConstraintEntry, klassHashtableEntry) \ 1505 declare_type(LoaderConstraintEntry, KlassHashtableEntry) \
1557 declare_toplevel_type(HashtableBucket<mtInternal>) \ 1506 declare_toplevel_type(HashtableBucket<mtInternal>) \
1558 declare_toplevel_type(SystemDictionary) \ 1507 declare_toplevel_type(SystemDictionary) \
1559 declare_toplevel_type(vmSymbols) \ 1508 declare_toplevel_type(vmSymbols) \
1560 declare_toplevel_type(ProtectionDomainEntry) \ 1509 declare_toplevel_type(ProtectionDomainEntry) \
1561 \ 1510 \
2005 /*********************/ \ 1954 /*********************/ \
2006 declare_toplevel_type(ciEnv) \ 1955 declare_toplevel_type(ciEnv) \
2007 declare_toplevel_type(ciObjectFactory) \ 1956 declare_toplevel_type(ciObjectFactory) \
2008 declare_toplevel_type(ciConstant) \ 1957 declare_toplevel_type(ciConstant) \
2009 declare_toplevel_type(ciField) \ 1958 declare_toplevel_type(ciField) \
2010 declare_toplevel_type(void*) \ 1959 declare_toplevel_type(ciSymbol) \
2011 declare_toplevel_type(ciObject) \ 1960 declare_toplevel_type(ciBaseObject) \
2012 declare_type(ciMethod, ciObject) \ 1961 declare_type(ciObject, ciBaseObject) \
2013 declare_type(ciMethodData, ciObject) \
2014 declare_type(ciType, ciObject) \
2015 declare_type(ciInstance, ciObject) \ 1962 declare_type(ciInstance, ciObject) \
2016 declare_toplevel_type(ciSymbol) \ 1963 declare_type(ciMetadata, ciBaseObject) \
1964 declare_type(ciMethod, ciMetadata) \
1965 declare_type(ciMethodData, ciMetadata) \
1966 declare_type(ciType, ciMetadata) \
2017 declare_type(ciKlass, ciType) \ 1967 declare_type(ciKlass, ciType) \
2018 declare_type(ciInstanceKlass, ciKlass) \ 1968 declare_type(ciInstanceKlass, ciKlass) \
2019 declare_type(ciArrayKlass, ciKlass) \ 1969 declare_type(ciArrayKlass, ciKlass) \
2020 declare_type(ciTypeArrayKlass, ciArrayKlass) \ 1970 declare_type(ciTypeArrayKlass, ciArrayKlass) \
2021 declare_type(ciObjArrayKlass, ciArrayKlass) \ 1971 declare_type(ciObjArrayKlass, ciArrayKlass) \
2022 declare_type(ciMethodKlass, ciKlass) \
2023 declare_type(ciKlassKlass, ciKlass) \
2024 declare_type(ciInstanceKlassKlass, ciKlassKlass) \
2025 declare_type(ciArrayKlassKlass, ciKlassKlass) \
2026 declare_type(ciTypeArrayKlassKlass, ciArrayKlassKlass) \
2027 declare_type(ciObjArrayKlassKlass, ciArrayKlassKlass) \
2028 \ 1972 \
2029 /********************/ \ 1973 /********************/ \
2030 /* -XX flags */ \ 1974 /* -XX flags */ \
2031 /********************/ \ 1975 /********************/ \
2032 \ 1976 \
2058 \ 2002 \
2059 /* all enum types */ \ 2003 /* all enum types */ \
2060 \ 2004 \
2061 declare_integer_type(Bytecodes::Code) \ 2005 declare_integer_type(Bytecodes::Code) \
2062 declare_integer_type(Generation::Name) \ 2006 declare_integer_type(Generation::Name) \
2063 declare_integer_type(instanceKlass::ClassState) \ 2007 declare_integer_type(InstanceKlass::ClassState) \
2064 declare_integer_type(JavaThreadState) \ 2008 declare_integer_type(JavaThreadState) \
2065 declare_integer_type(Location::Type) \ 2009 declare_integer_type(Location::Type) \
2066 declare_integer_type(Location::Where) \ 2010 declare_integer_type(Location::Where) \
2067 declare_integer_type(PermGen::Name) \
2068 declare_integer_type(FlagValueOrigin) \ 2011 declare_integer_type(FlagValueOrigin) \
2069 COMPILER2_PRESENT(declare_integer_type(OptoReg::Name)) \ 2012 COMPILER2_PRESENT(declare_integer_type(OptoReg::Name)) \
2013 \
2014 declare_toplevel_type(CHeapObj<mtInternal>) \
2015 declare_type(Array<int>, MetaspaceObj) \
2016 declare_type(Array<u1>, MetaspaceObj) \
2017 declare_type(Array<u2>, MetaspaceObj) \
2018 declare_type(Array<Klass*>, MetaspaceObj) \
2019 declare_type(Array<Method*>, MetaspaceObj) \
2070 \ 2020 \
2071 declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\ 2021 declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\
2072 declare_toplevel_type(address) /* FIXME: should this be an integer type? */\ 2022 declare_toplevel_type(address) /* FIXME: should this be an integer type? */\
2073 declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\ 2023 declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\
2074 declare_toplevel_type(BreakpointInfo) \ 2024 declare_toplevel_type(BreakpointInfo) \
2106 declare_integer_type(ReferenceType) \ 2056 declare_integer_type(ReferenceType) \
2107 declare_toplevel_type(StubQueue*) \ 2057 declare_toplevel_type(StubQueue*) \
2108 declare_toplevel_type(Thread*) \ 2058 declare_toplevel_type(Thread*) \
2109 declare_toplevel_type(Universe) \ 2059 declare_toplevel_type(Universe) \
2110 declare_toplevel_type(vframeArray) \ 2060 declare_toplevel_type(vframeArray) \
2111 declare_toplevel_type(vframeArrayElement) 2061 declare_toplevel_type(vframeArrayElement) \
2062 declare_toplevel_type(Annotations*)
2112 2063
2113 2064
2114 /* NOTE that we do not use the last_entry() macro here; it is used */ 2065 /* NOTE that we do not use the last_entry() macro here; it is used */
2115 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */ 2066 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */
2116 /* present there) */ 2067 /* present there) */
2147 /* Object sizes */ \ 2098 /* Object sizes */ \
2148 /****************/ \ 2099 /****************/ \
2149 \ 2100 \
2150 declare_constant(oopSize) \ 2101 declare_constant(oopSize) \
2151 declare_constant(LogBytesPerWord) \ 2102 declare_constant(LogBytesPerWord) \
2103 declare_constant(BytesPerWord) \
2152 declare_constant(BytesPerLong) \ 2104 declare_constant(BytesPerLong) \
2153 \ 2105 \
2154 /********************************************/ \ 2106 /********************************************/ \
2155 /* Generation and Space Hierarchy Constants */ \ 2107 /* Generation and Space Hierarchy Constants */ \
2156 /********************************************/ \ 2108 /********************************************/ \
2195 declare_constant(Generation::GenGrain) \ 2147 declare_constant(Generation::GenGrain) \
2196 \ 2148 \
2197 declare_constant(HeapWordSize) \ 2149 declare_constant(HeapWordSize) \
2198 declare_constant(LogHeapWordSize) \ 2150 declare_constant(LogHeapWordSize) \
2199 \ 2151 \
2200 /* constants from PermGen::Name enum */ \
2201 \
2202 declare_constant(PermGen::MarkSweepCompact) \
2203 declare_constant(PermGen::MarkSweep) \
2204 \ 2152 \
2205 /************************/ \ 2153 /************************/ \
2206 /* PerfMemory - jvmstat */ \ 2154 /* PerfMemory - jvmstat */ \
2207 /************************/ \ 2155 /************************/ \
2208 \ 2156 \
2286 declare_constant(Klass::_lh_array_tag_shift) \ 2234 declare_constant(Klass::_lh_array_tag_shift) \
2287 declare_constant(Klass::_lh_array_tag_type_value) \ 2235 declare_constant(Klass::_lh_array_tag_type_value) \
2288 declare_constant(Klass::_lh_array_tag_obj_value) \ 2236 declare_constant(Klass::_lh_array_tag_obj_value) \
2289 \ 2237 \
2290 /********************************/ \ 2238 /********************************/ \
2291 /* constMethodOopDesc anon-enum */ \ 2239 /* ConstMethod anon-enum */ \
2292 /********************************/ \ 2240 /********************************/ \
2293 \ 2241 \
2294 declare_constant(constMethodOopDesc::_has_linenumber_table) \ 2242 declare_constant(ConstMethod::_has_linenumber_table) \
2295 declare_constant(constMethodOopDesc::_has_checked_exceptions) \ 2243 declare_constant(ConstMethod::_has_checked_exceptions) \
2296 declare_constant(constMethodOopDesc::_has_localvariable_table) \ 2244 declare_constant(ConstMethod::_has_localvariable_table) \
2297 declare_constant(constMethodOopDesc::_has_exception_table) \ 2245 declare_constant(ConstMethod::_has_exception_table) \
2298 \ 2246 \
2299 /*************************************/ \ 2247 /*************************************/ \
2300 /* instanceKlass enum */ \ 2248 /* InstanceKlass enum */ \
2301 /*************************************/ \ 2249 /*************************************/ \
2302 \ 2250 \
2303 \ 2251 \
2304 /*************************************/ \ 2252 /*************************************/ \
2305 /* FieldInfo FieldOffset enum */ \ 2253 /* FieldInfo FieldOffset enum */ \
2312 declare_constant(FieldInfo::low_offset) \ 2260 declare_constant(FieldInfo::low_offset) \
2313 declare_constant(FieldInfo::high_offset) \ 2261 declare_constant(FieldInfo::high_offset) \
2314 declare_constant(FieldInfo::field_slots) \ 2262 declare_constant(FieldInfo::field_slots) \
2315 \ 2263 \
2316 /************************************************/ \ 2264 /************************************************/ \
2317 /* instanceKlass InnerClassAttributeOffset enum */ \ 2265 /* InstanceKlass InnerClassAttributeOffset enum */ \
2318 /************************************************/ \ 2266 /************************************************/ \
2319 \ 2267 \
2320 declare_constant(instanceKlass::inner_class_inner_class_info_offset) \ 2268 declare_constant(InstanceKlass::inner_class_inner_class_info_offset) \
2321 declare_constant(instanceKlass::inner_class_outer_class_info_offset) \ 2269 declare_constant(InstanceKlass::inner_class_outer_class_info_offset) \
2322 declare_constant(instanceKlass::inner_class_inner_name_offset) \ 2270 declare_constant(InstanceKlass::inner_class_inner_name_offset) \
2323 declare_constant(instanceKlass::inner_class_access_flags_offset) \ 2271 declare_constant(InstanceKlass::inner_class_access_flags_offset) \
2324 declare_constant(instanceKlass::inner_class_next_offset) \ 2272 declare_constant(InstanceKlass::inner_class_next_offset) \
2325 \ 2273 \
2326 /*********************************/ \ 2274 /*********************************/ \
2327 /* instanceKlass ClassState enum */ \ 2275 /* InstanceKlass ClassState enum */ \
2328 /*********************************/ \ 2276 /*********************************/ \
2329 \ 2277 \
2330 declare_constant(instanceKlass::unparsable_by_gc) \ 2278 declare_constant(InstanceKlass::allocated) \
2331 declare_constant(instanceKlass::allocated) \ 2279 declare_constant(InstanceKlass::loaded) \
2332 declare_constant(instanceKlass::loaded) \ 2280 declare_constant(InstanceKlass::linked) \
2333 declare_constant(instanceKlass::linked) \ 2281 declare_constant(InstanceKlass::being_initialized) \
2334 declare_constant(instanceKlass::being_initialized) \ 2282 declare_constant(InstanceKlass::fully_initialized) \
2335 declare_constant(instanceKlass::fully_initialized) \ 2283 declare_constant(InstanceKlass::initialization_error) \
2336 declare_constant(instanceKlass::initialization_error) \
2337 \ 2284 \
2338 /*********************************/ \ 2285 /*********************************/ \
2339 /* Symbol* - symbol max length */ \ 2286 /* Symbol* - symbol max length */ \
2340 /*********************************/ \ 2287 /*********************************/ \
2341 \ 2288 \
2342 declare_constant(Symbol::max_symbol_length) \ 2289 declare_constant(Symbol::max_symbol_length) \
2343 \ 2290 \
2344 /*************************************************/ \ 2291 /*************************************************/ \
2345 /* constantPoolOop layout enum for InvokeDynamic */ \ 2292 /* ConstantPool* layout enum for InvokeDynamic */ \
2346 /*************************************************/ \ 2293 /*************************************************/ \
2347 \ 2294 \
2348 declare_constant(constantPoolOopDesc::_indy_bsm_offset) \ 2295 declare_constant(ConstantPool::_indy_bsm_offset) \
2349 declare_constant(constantPoolOopDesc::_indy_argc_offset) \ 2296 declare_constant(ConstantPool::_indy_argc_offset) \
2350 declare_constant(constantPoolOopDesc::_indy_argv_offset) \ 2297 declare_constant(ConstantPool::_indy_argv_offset) \
2351 \ 2298 \
2352 /********************************/ \ 2299 /********************************/ \
2353 /* ConstantPoolCacheEntry enums */ \ 2300 /* ConstantPoolCacheEntry enums */ \
2354 /********************************/ \ 2301 /********************************/ \
2355 \ 2302 \
3165 delete s; 3112 delete s;
3166 return 1; 3113 return 1;
3167 } 3114 }
3168 delete s; 3115 delete s;
3169 } 3116 }
3117 const char* start = NULL;
3170 if (strstr(typeName, "GrowableArray<") == typeName) { 3118 if (strstr(typeName, "GrowableArray<") == typeName) {
3171 const char * start = typeName + strlen("GrowableArray<"); 3119 start = typeName + strlen("GrowableArray<");
3120 } else if (strstr(typeName, "Array<") == typeName) {
3121 start = typeName + strlen("Array<");
3122 }
3123 if (start != NULL) {
3172 const char * end = strrchr(typeName, '>'); 3124 const char * end = strrchr(typeName, '>');
3173 int len = end - start + 1; 3125 int len = end - start + 1;
3174 char * s = new char[len]; 3126 char * s = new char[len];
3175 strncpy(s, start, len - 1); 3127 strncpy(s, start, len - 1);
3176 s[len-1] = '\0'; 3128 s[len-1] = '\0';