comparison src/share/vm/runtime/vmStructs.cpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children 60b728ec77c1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
69 /******************************************************************/ \ 69 /******************************************************************/ \
70 /* OopDesc and Klass hierarchies (NOTE: methodDataOop incomplete) */ \ 70 /* OopDesc and Klass hierarchies (NOTE: methodDataOop incomplete) */ \
71 /******************************************************************/ \ 71 /******************************************************************/ \
72 \ 72 \
73 volatile_nonstatic_field(oopDesc, _mark, markOop) \ 73 volatile_nonstatic_field(oopDesc, _mark, markOop) \
74 nonstatic_field(oopDesc, _klass, klassOop) \ 74 volatile_nonstatic_field(oopDesc, _metadata._klass, wideKlassOop) \
75 volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \
75 static_field(oopDesc, _bs, BarrierSet*) \ 76 static_field(oopDesc, _bs, BarrierSet*) \
76 nonstatic_field(arrayKlass, _dimension, int) \ 77 nonstatic_field(arrayKlass, _dimension, int) \
77 nonstatic_field(arrayKlass, _higher_dimension, klassOop) \ 78 nonstatic_field(arrayKlass, _higher_dimension, klassOop) \
78 nonstatic_field(arrayKlass, _lower_dimension, klassOop) \ 79 nonstatic_field(arrayKlass, _lower_dimension, klassOop) \
79 nonstatic_field(arrayKlass, _vtable_len, int) \ 80 nonstatic_field(arrayKlass, _vtable_len, int) \
80 nonstatic_field(arrayKlass, _alloc_size, juint) \ 81 nonstatic_field(arrayKlass, _alloc_size, juint) \
81 nonstatic_field(arrayKlass, _component_mirror, oop) \ 82 nonstatic_field(arrayKlass, _component_mirror, oop) \
82 nonstatic_field(arrayOopDesc, _length, int) \
83 nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \ 83 nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \
84 nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \ 84 nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \
85 nonstatic_field(compiledICHolderOopDesc, _holder_klass, klassOop) \ 85 nonstatic_field(compiledICHolderOopDesc, _holder_klass, klassOop) \
86 nonstatic_field(constantPoolOopDesc, _tags, typeArrayOop) \ 86 nonstatic_field(constantPoolOopDesc, _tags, typeArrayOop) \
87 nonstatic_field(constantPoolOopDesc, _cache, constantPoolCacheOop) \ 87 nonstatic_field(constantPoolOopDesc, _cache, constantPoolCacheOop) \
88 nonstatic_field(constantPoolOopDesc, _pool_holder, klassOop) \ 88 nonstatic_field(constantPoolOopDesc, _pool_holder, klassOop) \
89 nonstatic_field(constantPoolOopDesc, _length, int) \
90 nonstatic_field(constantPoolCacheOopDesc, _length, int) \
89 nonstatic_field(constantPoolCacheOopDesc, _constant_pool, constantPoolOop) \ 91 nonstatic_field(constantPoolCacheOopDesc, _constant_pool, constantPoolOop) \
90 nonstatic_field(instanceKlass, _array_klasses, klassOop) \ 92 nonstatic_field(instanceKlass, _array_klasses, klassOop) \
91 nonstatic_field(instanceKlass, _methods, objArrayOop) \ 93 nonstatic_field(instanceKlass, _methods, objArrayOop) \
92 nonstatic_field(instanceKlass, _method_ordering, typeArrayOop) \ 94 nonstatic_field(instanceKlass, _method_ordering, typeArrayOop) \
93 nonstatic_field(instanceKlass, _local_interfaces, objArrayOop) \ 95 nonstatic_field(instanceKlass, _local_interfaces, objArrayOop) \
259 static_field(Universe, _collectedHeap, CollectedHeap*) \ 261 static_field(Universe, _collectedHeap, CollectedHeap*) \
260 static_field(Universe, _base_vtable_size, int) \ 262 static_field(Universe, _base_vtable_size, int) \
261 static_field(Universe, _bootstrapping, bool) \ 263 static_field(Universe, _bootstrapping, bool) \
262 static_field(Universe, _fully_initialized, bool) \ 264 static_field(Universe, _fully_initialized, bool) \
263 static_field(Universe, _verify_count, int) \ 265 static_field(Universe, _verify_count, int) \
266 static_field(Universe, _heap_base, address) \
264 \ 267 \
265 /**********************************************************************************/ \ 268 /**********************************************************************************/ \
266 /* Generation and Space hierarchies */ \ 269 /* Generation and Space hierarchies */ \
267 /**********************************************************************************/ \ 270 /**********************************************************************************/ \
268 \ 271 \
303 \ 306 \
304 nonstatic_field(CollectedHeap, _reserved, MemRegion) \ 307 nonstatic_field(CollectedHeap, _reserved, MemRegion) \
305 nonstatic_field(SharedHeap, _perm_gen, PermGen*) \ 308 nonstatic_field(SharedHeap, _perm_gen, PermGen*) \
306 nonstatic_field(CollectedHeap, _barrier_set, BarrierSet*) \ 309 nonstatic_field(CollectedHeap, _barrier_set, BarrierSet*) \
307 nonstatic_field(CollectedHeap, _is_gc_active, bool) \ 310 nonstatic_field(CollectedHeap, _is_gc_active, bool) \
308 nonstatic_field(CollectedHeap, _max_heap_capacity, size_t) \
309 \
310 nonstatic_field(CompactibleSpace, _compaction_top, HeapWord*) \ 311 nonstatic_field(CompactibleSpace, _compaction_top, HeapWord*) \
311 nonstatic_field(CompactibleSpace, _first_dead, HeapWord*) \ 312 nonstatic_field(CompactibleSpace, _first_dead, HeapWord*) \
312 nonstatic_field(CompactibleSpace, _end_of_live, HeapWord*) \ 313 nonstatic_field(CompactibleSpace, _end_of_live, HeapWord*) \
313 \ 314 \
314 nonstatic_field(CompactingPermGen, _gen, OneContigSpaceCardGeneration*) \ 315 nonstatic_field(CompactingPermGen, _gen, OneContigSpaceCardGeneration*) \
910 declare_toplevel_type(Klass_vtbl) \ 911 declare_toplevel_type(Klass_vtbl) \
911 declare_type(Klass, Klass_vtbl) \ 912 declare_type(Klass, Klass_vtbl) \
912 declare_type(arrayKlass, Klass) \ 913 declare_type(arrayKlass, Klass) \
913 declare_type(arrayKlassKlass, klassKlass) \ 914 declare_type(arrayKlassKlass, klassKlass) \
914 declare_type(arrayOopDesc, oopDesc) \ 915 declare_type(arrayOopDesc, oopDesc) \
915 declare_type(compiledICHolderKlass, Klass) \ 916 declare_type(compiledICHolderKlass, Klass) \
916 declare_type(compiledICHolderOopDesc, oopDesc) \ 917 declare_type(compiledICHolderOopDesc, oopDesc) \
917 declare_type(constantPoolKlass, arrayKlass) \ 918 declare_type(constantPoolKlass, Klass) \
918 declare_type(constantPoolOopDesc, arrayOopDesc) \ 919 declare_type(constantPoolOopDesc, oopDesc) \
919 declare_type(constantPoolCacheKlass, arrayKlass) \ 920 declare_type(constantPoolCacheKlass, Klass) \
920 declare_type(constantPoolCacheOopDesc, arrayOopDesc) \ 921 declare_type(constantPoolCacheOopDesc, oopDesc) \
921 declare_type(instanceKlass, Klass) \ 922 declare_type(instanceKlass, Klass) \
922 declare_type(instanceKlassKlass, klassKlass) \ 923 declare_type(instanceKlassKlass, klassKlass) \
923 declare_type(instanceOopDesc, oopDesc) \ 924 declare_type(instanceOopDesc, oopDesc) \
924 declare_type(instanceRefKlass, instanceKlass) \ 925 declare_type(instanceRefKlass, instanceKlass) \
925 declare_type(klassKlass, Klass) \ 926 declare_type(klassKlass, Klass) \
947 declare_oop_type(constantPoolOop) \ 948 declare_oop_type(constantPoolOop) \
948 declare_oop_type(constantPoolCacheOop) \ 949 declare_oop_type(constantPoolCacheOop) \
949 declare_oop_type(klassOop) \ 950 declare_oop_type(klassOop) \
950 declare_oop_type(markOop) \ 951 declare_oop_type(markOop) \
951 declare_oop_type(methodOop) \ 952 declare_oop_type(methodOop) \
952 declare_oop_type(methodDataOop) \ 953 declare_oop_type(methodDataOop) \
953 declare_oop_type(objArrayOop) \ 954 declare_oop_type(objArrayOop) \
954 declare_oop_type(oop) \ 955 declare_oop_type(oop) \
956 declare_oop_type(narrowOop) \
957 declare_oop_type(wideKlassOop) \
955 declare_oop_type(constMethodOop) \ 958 declare_oop_type(constMethodOop) \
956 declare_oop_type(symbolOop) \ 959 declare_oop_type(symbolOop) \
957 declare_oop_type(typeArrayOop) \ 960 declare_oop_type(typeArrayOop) \
958 \ 961 \
959 /*************************************/ \ 962 /*************************************/ \
1305 \ 1308 \
1306 /****************/ \ 1309 /****************/ \
1307 /* Object sizes */ \ 1310 /* Object sizes */ \
1308 /****************/ \ 1311 /****************/ \
1309 \ 1312 \
1313 declare_constant(oopSize) \
1310 declare_constant(LogBytesPerWord) \ 1314 declare_constant(LogBytesPerWord) \
1311 declare_constant(BytesPerLong) \ 1315 declare_constant(BytesPerLong) \
1312 \ 1316 \
1313 /********************/ \ 1317 /********************/ \
1314 /* Object alignment */ \ 1318 /* Object alignment */ \
1315 /********************/ \ 1319 /********************/ \
1316 \ 1320 \
1321 declare_constant(MinObjAlignment) \
1317 declare_constant(MinObjAlignmentInBytes) \ 1322 declare_constant(MinObjAlignmentInBytes) \
1323 declare_constant(LogMinObjAlignmentInBytes) \
1318 \ 1324 \
1319 /********************************************/ \ 1325 /********************************************/ \
1320 /* Generation and Space Hierarchy Constants */ \ 1326 /* Generation and Space Hierarchy Constants */ \
1321 /********************************************/ \ 1327 /********************************************/ \
1322 \ 1328 \
1359 declare_constant(Generation::LogOfGenGrain) \ 1365 declare_constant(Generation::LogOfGenGrain) \
1360 declare_constant(Generation::GenGrain) \ 1366 declare_constant(Generation::GenGrain) \
1361 \ 1367 \
1362 declare_constant(HeapWordSize) \ 1368 declare_constant(HeapWordSize) \
1363 declare_constant(LogHeapWordSize) \ 1369 declare_constant(LogHeapWordSize) \
1364 declare_constant(HeapWordsPerOop) \
1365 \ 1370 \
1366 /* constants from PermGen::Name enum */ \ 1371 /* constants from PermGen::Name enum */ \
1367 \ 1372 \
1368 declare_constant(PermGen::MarkSweepCompact) \ 1373 declare_constant(PermGen::MarkSweepCompact) \
1369 declare_constant(PermGen::MarkSweep) \ 1374 declare_constant(PermGen::MarkSweep) \
1608 declare_constant(OopMapValue::register_mask) \ 1613 declare_constant(OopMapValue::register_mask) \
1609 declare_constant(OopMapValue::register_mask_in_place) \ 1614 declare_constant(OopMapValue::register_mask_in_place) \
1610 declare_constant(OopMapValue::unused_value) \ 1615 declare_constant(OopMapValue::unused_value) \
1611 declare_constant(OopMapValue::oop_value) \ 1616 declare_constant(OopMapValue::oop_value) \
1612 declare_constant(OopMapValue::value_value) \ 1617 declare_constant(OopMapValue::value_value) \
1613 declare_constant(OopMapValue::dead_value) \ 1618 declare_constant(OopMapValue::narrowoop_value) \
1614 declare_constant(OopMapValue::callee_saved_value) \ 1619 declare_constant(OopMapValue::callee_saved_value) \
1615 declare_constant(OopMapValue::derived_oop_value) \ 1620 declare_constant(OopMapValue::derived_oop_value) \
1616 \ 1621 \
1617 /******************/ \ 1622 /******************/ \
1618 /* JNIHandleBlock */ \ 1623 /* JNIHandleBlock */ \