Mercurial > hg > truffle
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 */ \ |